一.pwn1
1.checksec
2.代码分析
老朋友了
考核PWN的wp(未完待续)_wbxlzd的博客-优快云博客
不多简述
二.int
1.查壳
2.代码分析
先是随机一个数,然后自己再输入一个数。
这两个数相加为零,即执行后门函数。但不能直接输入负数来使它们相加为零,否则直接报错。
3.分析
有canary保护,否决栈溢出。
这行代码表示该函数将字符串 v7 解析为一个整数,并将解析结果存储到变量 v5 中。给我们带来利用的条件,这下v5和v6都是%d,%d的范围为32位。只要我们相加到超过这个范围,进1后,符号位就是1,则为负数。
就是V6这个随机数,转换为二进制后,再转换为补码,让x相加到33位,即成功绕过。
这个x就是v6的补码加1
为什么?
比如我们想要得到10000,已知一个数是1100,那么先假设加上0011,结果为1111,再加上1,即为10000。所以就是需要v6的补码加1。
4.exp.py
因为这题的v6随机
①在python的交互下完成
②nc下完成
三.web 爆破
打开发现有一万个网页,里面随机分布着flag碎片
这题就是考爆破的运用
先添加要爆破的位置
开始设置爆破的种类,范围,步长
然后根据反映的长度不同,来依次拼接
四.md5
直接上脚本
import hashlib
import itertools
import string
MW='Python_MD5'
# flag=MD5(MW)
# print(flag)
dict=string.ascii_letters+string.digits
print(dict)
for i in itertools.product(dict,repeat=4):
str="".join(i)
md5 = hashlib.md5((MW+str).encode()).hexdigest()
if "ca5c8967fce365cd2e79ba086d" in md5:
print(MW+str)
exit()
运行结果
Python_MD5ALJX
因为flag=MD5(MW),所以还得去md5加密一下
flag为CA5C8967FCE365CD2E79BA086D7F808E