攻防世界PWN新手题(PWN——level2)

level2

转载自原创superj.site

0x00

首先通过file和checksec分析该题的附件。

在这里插入图片描述
判断该文件是32位的ELF文件,只开启了不可执行的保护。

0x01

开始进行反汇编,用IDA 32位。

通过左侧的函数窗口发现,只有main、vulnerable_function可用,因此进行分析,两个函数如下图:

在这里插入图片描述

在这里插入图片描述

通过分析发现,在main函数中首先调用vulnerable_function,在vulnerable_function中的缓冲区大小为88h,而read函数能够写进缓冲区100h,因此存在栈溢出。

知道是栈溢出之后就需要找到溢出点:缓冲区大小加上ebp的4个字节后,就是返回地址的位置。

在这里插入图片描述
发现在ELF文件中存在字符串“/bin/sh”,而且在主函数中最后会再次调用一次system函数,因此判断可以返回最后一次调用的位置。因此构造payload。

payload = 'a' * 0x88 + 'a' * 4 + p32(0x0804849e) + p32(0x0804a024)

最后的0x0804a024/bin/sh的地址。

0x02

最后的exp为:

在这里插入图片描述

0x03

在这里插入图片描述

最后获取到shell,cat flag得到flag。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值