吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2155|回复: 3
收起左侧

[调试逆向] ROP之ret2libc

[复制链接]
faqiadegege 发表于 2024-5-13 09:25
Ret2Libc概述
程序动态加载libc库中功能函数,利用溢出漏洞,使用libc中比如system的地址覆盖返回地址,执行libc功能,控制执行流程,或者拿到shell等。

实例分析
静态分析,同样gets函数的溢出漏洞
image.png
确认文件属性
image.png

image.png

调试,确定溢出偏移
image.png

image.png

image.png

所以,溢出长度位108 + 4 = 112
image.png 确定‘/bin/sh’偏移


image.png

有关libc中system函数的偏移位置,需要参考PLT和GOT的关系GOT表是存储外部函数库的表PLT则是由代码片段组成的,每个代码片段都跳转到GOT表中的一个具体的函数调用二者的关系参考 https://saku376.github.io/2021/04/30/GOT%E8%A1%A8%E5%92%8CPLT%E8%A1%A8/

函数第一次调用过程 image.png


第一步由函数调用跳入到PLT表中,然后第二步PLT表跳到GOT表中,第三步由GOT表回跳到PLT表中,这时候进行压栈,把代表函数的ID压栈,第四步跳转到公共的PLT表项中,第五步进入到GOT表中,第六步 _dl_runtime_resolve对动态函数进行地址解析和重定位,第七部 把动态函数的真实地址写入到GOT表项中,第八步 执行函数并返回。 dynamic段:提供动态链接的信息,例如动态链接中各个表的位置link_map: 已加载库的链表,由动态库函数的地址构成的链表_dl_runtime_resolve: 在第一次运行时进行地址解析和重定位工作  之后的调用过程

image.png

所以,为了构造exp,找libc中的system时,找对应的符号在plt表中的地址即可 image.png
至此,构造exp
image.png

验证,获取shell
image.png



免费评分

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

查看全部评分

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

sangaqiao 发表于 2024-5-13 16:27
感谢分享
dongmu666 发表于 2024-5-13 15:48
nishuidechali 发表于 2024-5-18 03:10
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-11 22:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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