SuperAPI AI 工具集

re-pwn

通用与其它

查看项目

更新于 10-16 05:06

技能介绍

用途:re-pwn 面向 CTF pwn 入门赛题,覆盖栈溢出(覆盖返回地址)、格式化字符串(泄露/任意写)、ret2libc(泄露 libc 拿 shell)以及入门级 ROP(ret2win、ret2shellcode、ret2libc、ret2csu 前几级)。适用前提是拿到题目二进制与配套 libc,目标是写出能 get shell 或打印 flag 的利用脚本。复杂 ROP 工程化、堆利用(fastbin/tcache)不在此范围,需转向进阶技能;纯逆向、Windows/macOS 目标也不适用。

主要能力与工具准备:利用脚本主力为 pwntools,可用 pip install pwntools 安装;官方当前正式版为 4.15.0,支持 Python 3.8+,但该版本是最后一个支持 Python 2 与 Python <3.10 的版本,后续按 Python >=3.10 准备,在 3.8/3.9 上需 pin pwntools==4.15.0。发行版包可 apt/dnf/pacman 安装同功能版本。Python 3.12+ 直接 pip 会报 PEP 668 错误,可用 venv、发行版包或 --break-system-packages。checksec 随 pwntools 提供,用于查看 NX/PIE/Canary/RELRO。动态验证用 gdb 配合 pwndbg/gef;32 位目标在 Debian/Ubuntu 需 gdb-multiarch 与 libc6-i386。one_gadget 为可选工具,Ruby gem 安装。

使用方式:先 file 与 sha256sum 记录样本,再 pwn checksec 判定保护并决定利用路线;用反汇编/反编译定位危险函数与输入点,识别 gets、strcpy、scanf("%s")、read/sprintf 等溢出点,以及 printf(user_input) 类格式化字符串;用 cyclic 生成模式串并结合 corefile 的 cyclic_find 计算偏移;ret2libc 借助 puts@plt 泄露 puts@got 等 GOT 地址,再用题目 libc 或泄露低 12 位匹配版本,计算 libc_base、system、/bin/sh 偏移;格式化字符串用 %N$p 泄露、%N$n 任意写,pwntools 的 fmtstr_payload 可辅助构造;最后本地运行 exploit.py 验证,再考虑连远程。

限制与注意事项:所有动态执行与利用验证默认在沙箱内进行,远程仅用于验证。常见陷阱包括保护全开需组合泄露与利用、libc 版本不匹配会导致偏移全错、本地通过但远程失败的环境差异、64 位参数走寄存器需 pop rdi;ret 等 gadget 且注意栈对齐、格式化字符串偏移需实测确定。资料未提供具体价格、收费或平台支持信息。