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

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

利用ROP-ret2Syscall突破NX保护

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


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


什么是ROPGadgets?

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

1.png

image.png

NX保护开启了

1.png

image.png

1.png

下一步要组合shellcode

系统调用号 eax = 0xb

第一个参数 ebx /bin/sh

第二个参数和第三个参数应该都是 0

image.png

ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "eax"

image.png

我们选用0x80bb196

image.png

image.png

image.png

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

image.png

exp如上!

image.png

调试!!

image.png

相关文章
|
1月前
|
Linux
嵌入式Linux系统(NUC980)tf卡出错处理errors=remount-ro改为errors=continue
嵌入式Linux系统(NUC980)tf卡出错处理errors=remount-ro改为errors=continue
13 1
|
10月前
STM32 Keil工程中使用abs函数报警告 warning: #223-D: function "abs" declared implicitly
STM32 Keil工程中使用abs函数报警告 warning: #223-D: function "abs" declared implicitly
518 0
|
10月前
|
NoSQL 安全 Shell
简单的PWN学习-ret2shellcode
最近在学习pwn,这是一道2016年的pwn题目,主要学习关于栈溢出以及劫持栈指针达到命令执行的效果,笔者水平较差,请轻喷
|
前端开发 rax Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
690 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
|
Go 索引
Go基础:range、循环控制Goto、Break、Continue
Go基础:range、循环控制Goto、Break、Continue
222 0
|
NoSQL Shell
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(下)
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护
105 0
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(下)
|
NoSQL Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
211 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc基础知识
[PWN][高级篇]ROP-ret2libc基础知识
406 0
[PWN][高级篇]ROP-ret2libc基础知识
|
Shell Linux
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
[PWN][进阶篇]ROP_Ret2Shellcode-32实例
139 0
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
|
前端开发 rax Shell
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例
361 0
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)