[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)

简介: [PWN][进阶篇]ROP_Ret2Shellcode-32实例

1.png

image.png

rwxp权限ok的,我们是可以把shellcode写到这里的

step5 计算偏移

image.png

image.png

step6 exp开始

1、自动生成的shellcode 的exp 如下:

image.png

告诉电脑我们是什么程序,32位嘛不是,所以是i386,我的操作环境是linux

然后获取进程

利用pwntools自动生成shellcode

payload还是,条用shellcode的ljust方法,两个参数依次是偏移量和用什么填充,再加上覆盖的地址

然后发送和获取交互环境

我们运行一个这个ex

image.png

撒花撒花!!!!

2、手写shellcode

image.png

给大家来讲解一下这个手写的shellcode

我们都知道最核心的是/bin///sh

所以我们在手写的时候push了3个参

push了68 ,对照ascll码也就是h

之后的两个push也就是h///nib/

系统读取的时候是从右到左的,所以小端读进去之后也就是/bin///sh

再和大家说一下为什么是三个/ 如果主要是避免0的出现,/bin/sh从意思上就已经OK了,但是这样子的话不够8位,会自动补0,如果是0的话系统读到00就自动终止了,所以是///

mov ebx,esp呢就是我们最后读的/bin///sh给到了ebx

两个xor的原因是我们要将exc和edx清空,不能赋值给0

push 11 11是我们execve的系统调用号

pop eax 尽量用push + pop的方式来给寄存器赋值

这样子就ok了

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


相关文章
8086 汇编笔记(九):call 指令 和 ret 指令
8086 汇编笔记(九):call 指令 和 ret 指令
|
4月前
汇编指令学习(CALL,JMP,RET)
汇编指令学习(CALL,JMP,RET)
69 0
|
NoSQL 安全 Shell
简单的PWN学习-ret2shellcode
最近在学习pwn,这是一道2016年的pwn题目,主要学习关于栈溢出以及劫持栈指针达到命令执行的效果,笔者水平较差,请轻喷
|
前端开发 rax Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
762 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
|
Linux
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
247 0
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
|
安全 Shell Linux
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(上)
[PWN][进阶篇]ROP_Ret2Shellcode-32实例
186 0
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(上)
|
前端开发 rax Shell
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例
392 0
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)
|
Linux
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例
228 0
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(下)
|
NoSQL Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
263 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc基础知识
[PWN][高级篇]ROP-ret2libc基础知识
461 0
[PWN][高级篇]ROP-ret2libc基础知识