ret2text

博客详细介绍了如何利用ret2text程序中的栈溢出漏洞来获取shell。首先检查了程序的保护机制,发现PIE未开启。接着通过IDA分析,找到存在危险函数gets()的vulnerable()函数和get_shell()函数。确定了可以通过栈溢出来覆盖return地址,使其跳转到system("/bin/sh")。在GDB中调试,找寻buf地址,并构造payload。最后,使用pwntools编写exploit脚本,成功获取shell。
摘要由CSDN通过智能技术生成

ret2text

进程存在危险函数如system(“/bin”)或execv(“/bin/sh”,0,0)的片段,可以直接劫持返回地址到目标函数地址上,从而获取shell。

1.检查保护机制

首先调用checksec,检查保护机制:

发现pie没有开启

2.ida分析程序

使用ida打开程序ret2text,静态分析:

发现main函数中存在函数:vulnerable(),里面有危险函数gets(),可以用来进行栈溢出

发现存在函数get_shell()

因此可以栈溢出覆盖return使其跳到 system("/bin/sh")位置

使用ida获取system("/bin/sh")地址为:0x08048522

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NW64A61O-1631941229258)(C:\Users\Chance\AppData\Roaming\Typora\typora-user-images\image-20210705162106600.png)]

3.exp编写

因此,可以得到编写exp的逻辑:

使用gdb调试,寻找buf的地址:

不断步过,然后在vulnerable()函数内步入,当在gets()函数处,输入8个’A’,观察栈的状态:

则buf的偏移为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值