小猫的PWN学习笔记7:ret2系列利用总结
原创
小猫信安
小猫信安
小猫信安
2026年8月22日 15:30
湖北
在小说阅读器读本章
去阅读
前面我们学习了
- ret2text
- rer2shellcode
- ret2libc
- ret2syscall
这几个利用方式的核心原理:都是通过栈溢出劫持ret指令,跳转到我们的getshell函数
ret2text利用条件
程序本身就有system等getshell函数。
ret2shellcode利用条件
劫持的变量要在可写可执行内存区域。(正如我们提到的bss和data段用于存放未初始化的全局变量和静态变量的静态内存区域)
ret2libc利用条件
程序为动态链接库加载。
file 文件名
ret2syscall利用条件
程序中含有int 0x80指令。
ROPgadget --binary xxx --only 'int'
因此,我们总结一下利用流程
拿到题目文件 (file) │ ▼┌──────────────────────────┐│ 1. 信息收集与保护机制检查 ││ (checksec / file 命令) │└───────────┬──────────────┘ │ ├─ [架构] ──▶ 64位 (p64) / 32位 (p32) / ARM ├─ [RELRO] ─▶ Full/Partial/No (影响GOT表修改) ├─ [Stack] ─▶ Canary (栈 cookie 有无,决定是否需泄露) ├─ [NX] ───▶ Enabled (栈不可执行) / Disabled (可写可执行) └─ [PIE] ──▶ Enabled (地址随机化) / Disabled (基址固定) │ ▼┌──────────────────────────┐│ 2. 逆向分析 (IDA Pro) ││ (寻找漏洞点) │└───────────┬──────────────┘ │ ├─ 找到漏洞:栈溢出 / 堆溢出 / UAF / 格式化字符串? ├─ 分析逻辑:输入点在哪里?输出点在哪里? └─ 查找字符串/导入表:是否有 system(\"/bin/sh\")? │ ▼┌──────────────────────────┐│ 3. 利用思路决策 │└───────────┬──────────────┘ │ ├─ [有后门?] ──(Y)──▶ 直接覆盖返回地址 -> Ret2Text (p32/p64) │ ├─ [NX=False?] ─(Y)──▶ Ret2Shellcode (构造shellcode写入bss/data段) │ ├─ [有Libc?] ──(Y)──▶ Ret2Libc (泄露地址 -> one_gadget / system) │ ├─ 找 pop rdi ; ret │ └─ 找 /bin/sh 字符串 │ └─ [有Syscall?] ─(Y)──▶ Ret2Syscall (手动构造 execve(\"/bin/sh\",0,0)) │ └─ [都不行?] ────(N)──▶ ROP链构造 / 堆利用 / 放弃 │ ▼┌──────────────────────────┐│ 4. 编写 Exp & 调试 ││ (pwntools / GDB) │└───────────┬──────────────┘ │ ├─ 本地调试 (GDB.attach / breakpoint) └─ 远程攻击 (conn.remote)
这里推荐一个我自己的漏洞库,微信上面就能看,不光分享挖掘漏洞全套知识,课程,还不定期分享全网xday,poc,ed\src和c\vd已经公开报告,一年59元,我全网比较下来一圈,总体来说全网算是性价比非常高的,一些机构的课程课程动不动就大几千,因此我尽量以实惠的价格为大家传授经验,而且是我个人运营,,这里就是为了让更多人能接触网安这个行业。
对于刚入门的同学,这个圈子里我会从最初编程开始教起,一步一步到计算机网络,操作系统,前后端代审等等我分享的一切资料都会以最通俗易懂,小白式语言,手把手教学。
对于有经验的师傅们,这个可以当做微信上面随手打开的漏洞库,平常下班可以点开看看,一些poc也可以上面查找,也欢迎补充分享。
刚开始建圈,后期会每天更新内容,因此,现在是最低价,后期随着资料含金量越来越高,只会上调价格
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论