Pwn-最简单栈溢出(2018铁三云贵赛区)write函数泄露+用地址跳回重执行主函数

本文介绍了如何利用栈溢出漏洞进行write函数泄露动态地址,以及如何在溢出后使程序重执行主函数。通过分析IDA源码,找到system地址和/bin/sh字符串地址,构建ROP链实现getshell。文章详细描述了每个步骤,包括测试字符长度确定、libc库函数地址查找、主函数地址获取等。
摘要由CSDN通过智能技术生成

开始前的例行叨叨:

这大概是最简单的pwn题了吧,直接溢出的。主要是记录下write函数泄露动态地址的姿势,还有程序执行完一次就退出了,如何在溢出的末尾让它重执行,以及从lic中提取地址的姿势。



先放题目(侵删):

https://github.com/staticStr/ForCTF/blob/master/rop.zip?raw=true

压缩包里给了题目和lib32



拿出令人沉迷的ida看看源码:

不能更简单了,就一个read函数,能往buf里写0x100,而buf位置是bp-88存在溢出,可以覆盖。


步骤1:

在kali32位里gdb调试,输入个200长度的测试字符看看报错地址。

生成测试字符,并输入到gdb调试的程序里:



现在我们得到了padding长度是140



步骤2&

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值