ctf-pwn自动化工具pwnpasi
1.pwnpasi概述
pwnpasi 是一款专为CTF PWN方向入门基础题目开发设计的自动化工具,旨在帮助新手小白快速识别和利用32位和64位程序中的栈溢出漏洞与格式化字符串漏洞。该工具能够自动判断溢出字符数,自动识别格式化字符串漏洞,自动识别程序调用的动态链接库,并生成相应的ROP链以利用漏洞。支持多种利用方式,包括调用system后门函数、写入shellcode、puts函数ROP、write函数ROP以及syscall ROP,格式化字符串利用,可自动识别并绕过PIE防护与canary防护。此外,工具还具备本地和远程利用功能,并集成了LibcSearcher库,用于在没有提供libc地址的情况下自动搜索合适的libc版本
2.pwnpasi安装
确保已安装Python 3.x,安装所需依赖库:
先把py文件放kali里运行下面,进入工具目录
pip install --upgrade setuptools
python3 setup.py install
3.pwnpasi用法
-l, --local Required parameter, used to specify local file
指定本地目标文件
-ip, --ip Used to specify remote servers
指定远程服务器IP
-p, --port Used to specify remote port
定远程服务器端口
-libc, --libc Used to specify local libc
定本地libc文件
-f, --fill The number of characters that can cause overflow
填充字符数
Usage:
python pwnpasi.py -l babypwn
python pwnpasi.py -l babypwn -f 112
python pwnpasi.py -l babypwn -libc ./libc-2.19.so
python pwnpasi.py -l babypwn -libc ./libc-2.19.so -ip 192.168.0.1 -p 33333
栈溢出漏洞演示:
python3 pwnpasi.py -l level3_x64


格式化字符串漏洞演示
https://github.com/user-attachments/assets/9bf09335-605a-4896-aacf-ea938b800ba0
python3 pwnpasi.py -l fmtstr1

绕过canary防护演示:
https://github.com/user-attachments/assets/a3d8037d-227a-4f01-a554-750df58e7b67
canary FUZZ需要的时间较久,需要耐心等一下
python3 pwnpasi.py -l canary
绕过PIE防护演示
https://github.com/user-attachments/assets/2a3b1e49-e372-43d7-b2f1-43b153ea7ec6
运行工具
通过命令行运行工具。示例命令:
python pwnpasi.py -l level3_x64
使用ldd工具可查看程序调用的动态链接库
ldd [文件名]

指定造成溢出的字符数与动态链接库:
python pwnpasi.py -l level3_x64 -libc /lib/i386-linux-gnu/libc.so.6 -f 112
远程连接:
python pwnpasi.py -l level3_x64 -libc /lib/i386-linux-gnu/libc.so.6 -ip 192.168.0.1 -p 33333
关于可能的报错
为确保FUZZ测试的顺利进行,程序名称应避免使用特殊字符(如_/*&^%$#@等),建议使用纯字母或数字命名。若存在特殊字符,请及时重命名程序
报错可能源于工具或依赖项未完全安装。请根据上述提供的工具列表,逐一检查并确保所有必要的工具和依赖项均已正确安装
简单栈溢出测试:

这个题是buuctf上的jarvisoj_level0
python3 pwnpasi.py -l ./level0 -ip node5.buuoj.cn -p 27455

浙公网安备 33010602011771号