首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[PWN][高级篇]利用ROP-ret2Syscall突破NX保护

[PWN][高级篇]利用ROP-ret2Syscall突破NX保护

作者头像
李鹏华
发布2024-03-12 15:25:38
发布2024-03-12 15:25:38
3090
举报
文章被收录于专栏:网络信息安全网络信息安全
利用ROP-ret2Syscall突破NX保护

大家还记的之前说过的ret2text漏洞吗,那是利用依赖于程序中的存在,执行system(’/bin/sh’)的函数,如果没有这个函数的话,我们怎么办呢?

我们使用ret2shellcode是自定义shellcode代码,但是这中方法的局限性是程序没有开启NX保护,那么如何程序开启了NX保护,这个时候我们就要使用Ret2Syscall大法了!!!!

什么是ROPGadgets? 是在程序中的指令片段,有时我们为了到达我们执行命令的目的,需要多个Gadget来完成我们的功能。Gadget最后一般都有ret,因为要将程序控制权(IP)给下一个Gadret

NX保护开启了

下一步要组合shellcode

系统调用号 eax = 0xb 第一个参数 ebx /bin/sh 第二个参数和第三个参数应该都是 0

代码语言:javascript
复制
ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "eax"

我们选用0x80bb196

这些就是我们要使用的指令片段了

exp如上!

调试!!

回车之后程序会断在系统领空 我们要返回程序领空

首先在gdb中输入finish指令,然后在继续执行exp

程序就断到了read函数处

继续finish

看一下栈中的情况。然后继续finish

到了mian这里,我们再看一个栈中的情况

这时/bin/sh已经写到栈里了

ret2syscall的局限性是很大的,如果没有我们可以使用的指令片段的怎么办,emmm,关注我的后续更新!!

希望大家可以有所收获!!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 利用ROP-ret2Syscall突破NX保护
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档