吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1403|回复: 0
收起左侧

[漏洞分析] ROP之ret2text

[复制链接]
faqiadegege 发表于 2024-4-30 18:52
ROP 是什么返回导向编程(英语:Return-Oriented Programming,缩写:ROP)是计算机安全中的一种漏洞利用技术,该技术允许攻击者在程序启用了安全保护技术(如堆栈不可执行)的情况下控制程序执行流,执行恶意代码。
其核心思想是通过栈缓冲区溢出等方式控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列(称为Gadgets)。
所谓 gadgets 就是以 ret 结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,方便控制程序的执行流程
ROP是一种高级的堆栈溢出攻击。
这类攻击往往利用操作堆栈调用时的程序漏洞,通常是缓冲区溢出。
在缓冲区溢出中,在将数据存入内存前未能正确检查适当范围的函数会收到多于正常承受范围的数据,如果数据将写入栈,多余的数据会溢出为函数变量分配的空间并覆盖替换返回地址(return address)。
在原本用以重定向控制流并返回给调用者的地址被覆盖替换后,控制流将改写到新分配的地址。
标准的缓冲区溢出攻击,攻击者只需要写出针对堆栈部分的代码(有效载荷)。
直到1990年代后期,主流操作系统没有为该类攻击作出任何防范,微软直到2004年才提供了缓冲区溢出保护。
操作系统最终使用数据执行保护技术来修补这个漏洞,该技术标记内存数据不可执行(NX)。
启用数据执行保护,机器将拒绝执行任何内存中user级别可写区域的代码。
该技术的硬件支持不久用以加强该防范 NX保护NX即No-execute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。
随着  NX 保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。
所以就有了各种绕过办法,rop就是一种

以上都是百科上的学术描述,其实说直白点,就是利用程序执行中的ret指令和程序中的溢出位置,控制eip(x86为例)指向的位置,完成利用在汇编中,函数调用过程存在两个重要指令call,ret,而eip为指令寄存器,时刻指向cpu运行的当前位置call 指令等同于 先将eip的值存起来,转到被调用函数的地址ret 指令等同于   弹出保存的eip的值,并转向被调用函数过程的下一条指令继续执行当某一程序中存在溢出时,利用溢出填充地址到跳转值,即利用ret指令,完成利用
ret2text是什么即 ret to text,这里的text指的是.text 段即,在源程序中可以找到可以利用的代码片段,直接ret到该位置,完成exploit一般例如程序开启了nx保护的情况下,栈空间上没法执行代码,此时正好找到有代码在程序中是现成的可以使用的,即利用该种方式完成漏洞利用例子
有如下代码
image.png

这里显然read输入有溢出对该文件进行编译
image.png

启动调试,查看保护选项
image.png

开始调试,确认利用开发细节
image.png

image.png

执行到VulnOVerFlowF 并步入
image.png

继续执行到read处
image.png

获取标准输入 123456789.。。。。。。
image.png

上图看到,这里可以看到输入的字符串的位置为:0x7fffffffddf0
image.png

执行到ret位置,此时rsp位置为 :0x7fffffffde08偏移差值为:0xde08-0xddf0 = 24确定ret2text的text地址,即代码中的ret2textF的地址
image.png

构造利用代码
image.png

]利用验证
image.png

免费评分

参与人数 3吾爱币 +9 热心值 +2 收起 理由
d3solate + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
v4n1ty404 + 1 我很赞同!
willJ + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 13:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表