[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)

简介: [PWN][进阶篇]ROP-Ret2Shellcode-64位实例

ROP-Ret2Shellcode-64位实例

/usr/include/x86_64-linux-gnu/asm/unisted_64.h

image.png

image.png

编写64位shellcode,思路和32位是一样的

(1)想办法调用execve("/bin/sh",null,null)

(2)借助栈来传入字符串/bin/sh

(3)系统调用execve

rax = 0x3b(64bit)

rdi = bin_sh_addr

rsi = 0

rdx = 0

image.png

实例代码如下:

image.png

setvbuf函数的作用是优化io流,在服务器上时,或者是比赛时,一般都会有这个函数。

我们还发现了最重要的切入点 get()

我的大刀已经饥渴难耐了

实例开始


step1 检查保护

image.png

step2 查看buf2

image.png

image.png

step3 查601080的段是否可执行

image.png

我们利用vmmap看看601080

image.png

rwxp权限,可以执行

step4 计算偏移

cyclic 300

cyclic -l +异常地址

但是pwndbg只能读四字节的

image.png

相关文章
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实例(上)
|
Shell Linux
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
[PWN][进阶篇]ROP_Ret2Shellcode-32实例
159 0
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
|
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基础知识