| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 网络协议 -> CTF笔记:ROP技术 -> 正文阅读 |
|
|
[网络协议]CTF笔记:ROP技术 |
|
CTF 笔记案例主要来源于UUCTF等平台,通过复现案例等相关内容了解具体原理,涉及内容较简单,相关案例文章也较多,学习难度较小,通过IDA checksec readelf 以及linux 平台动态GUI调试工具EDB等分析程序功能 示例:Security Fest CTF 2016-tvstation
主程序执行情况,我们看到主要执行函数menu();
执行程序,菜单功能模块选项,运行程序发现菜单只有3个选项,但实际在IDA分析可见有选项4.
并且选项4中debug()函数输出system在内存中地址
查看返回值debug_func()函数,明显存在溢出点。
.text节(Section)属于第一个LOAD段(Segment),这个段的文件长度和内存长度是一样的,也就是说所有的代码都是原样映射到内存中,代码之间的相对偏移是不会改变的。由于前面的PHDR, INTERP两个段也是原样映射,所以在IDA里看到的system首地址距离文件头的地址偏移和运行时的偏移是一样的
? 在这个libc中system函数首地址是0x456a0,即从文件的开头数0x456a0个字节到达system函数,调试程序得到systemsystem在内存中的地址是0x7f1a3887d98a0,
0x7f1a3887d98a0-0x456a0=7F1A388794200 在libc中存在字符串
exp:
|
|
|
| 网络协议 最新文章 |
| 使用Easyswoole 搭建简单的Websoket服务 |
| 常见的数据通信方式有哪些? |
| Openssl 1024bit RSA算法---公私钥获取和处 |
| HTTPS协议的密钥交换流程 |
| 《小白WEB安全入门》03. 漏洞篇 |
| HttpRunner4.x 安装与使用 |
| 2021-07-04 |
| 手写RPC学习笔记 |
| K8S高可用版本部署 |
| mySQL计算IP地址范围 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/28 9:00:00- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |