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

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

所以我们读6161616b

image.png

偏移量是40,起飞


step5 exp搞起

整体思路:

一个全局变量一个main函数一个局部变量

两个get

第一个get把他覆盖到输入,栈的返回值覆盖到全局变量的入口处,第二个get输入我们的shellcode

注意选用全局变量存放shellcode,就要考虑是否有权限

image.png

image.png

exp理解:

程序是64位的,os是linux的,所以我们要告诉电脑

offset是40,我们上面cyclic求的

shellcode是自动生成的

grep可以找到buf2,这里我们用其他的方式来找ELF()+symbols[]

一个get的payload使我们指向buf2

第二个get利用shellcode来getshell

因为程序有交互,p.recvuntil(’: '),的意思就是直到程序输出的内容含有:+空格再继续向下发送信息

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


相关文章
|
8月前
|
存储 Linux C语言
深入解析Linux环境下的sprintf()和printf()函数
在C语言中,`sprintf()`和`printf()`函数是用于格式化输出的两个重要函数。`sprintf()`函数将格式化的数据写入一个字符串,而`printf()`函数则将格式化的数据输出到标准输出。在Linux环境中,这两个函数被广泛应用于各种编程任务。本文将详细介绍这两个函数的用法,包括格式化字符串的语法和一些常见的使用场景。
357 1
|
11月前
|
NoSQL 安全 Shell
简单的PWN学习-ret2shellcode
最近在学习pwn,这是一道2016年的pwn题目,主要学习关于栈溢出以及劫持栈指针达到命令执行的效果,笔者水平较差,请轻喷
|
前端开发 rax Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
725 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(上)
|
Linux
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
200 0
内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
|
Shell Linux
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
[PWN][进阶篇]ROP_Ret2Shellcode-32实例
148 0
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(下)
|
安全 Shell Linux
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(上)
[PWN][进阶篇]ROP_Ret2Shellcode-32实例
169 0
[PWN][进阶篇]ROP_Ret2Shellcode-32实例(上)
|
前端开发 rax Shell
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例
374 0
[PWN][进阶篇]ROP-Ret2Shellcode-64位实例(上)
|
NoSQL Shell
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)
224 0
[PWN][高级篇]ROP-ret2libc-32/64位实例 (共四个)(下)
[PWN][高级篇]ROP-ret2libc基础知识
[PWN][高级篇]ROP-ret2libc基础知识
425 0
[PWN][高级篇]ROP-ret2libc基础知识
|
存储 安全 NoSQL
[PWN][进阶篇]Rop-Ret2Text介绍及实例教学
[PWN][进阶篇]Rop-Ret2Text介绍及实例教学
589 0
[PWN][进阶篇]Rop-Ret2Text介绍及实例教学