渗透中的Fuzz测试总结

渗透中的Fuzz测试总结

前言

Fuzz测试,又称模糊测试,是一种在渗透测试和软件安全领域广泛应用的自动化测试技术。其核心思想是通过向目标系统输入大量的随机、异常或不规则的数据,观察程序的反应,从而发现潜在的漏洞和隐患。常用的Fuzz测试工具有:Burp、ffuf、Wfuzz、dirsearch等。

FFUF使用

FFUF是一个由Go语言编写的快速、灵活的Web应用程序扫描工具,用于发现隐藏在Web服务器中的路径或文件。它的主要功能是通过暴力猜测(brute-forcing)来查找目标主机上存在的文件或目录,从而帮助发现可能存在的安全漏洞或配置问题。

项目地址:https://github.com/ffuf/ffuf,kali上默认自带。

主要特点和用途

快速和高效:FFUF专注于快速扫描和发现,利用并行化和异步请求以加快扫描速度。灵活的字典支持:支持自定义字典文件,可以根据实际情况灵活调整扫描策略。HTTP请求定制:可以通过设置HTTP头、Cookie、代理等来定制每次请求,以便在不同场景下进行测试。过滤器功能:支持根据HTTP状态码、响应内容长度等条件来过滤扫描结果,帮助缩小扫描范围。递归扫描:可以深入探索目标网站的子目录和链接,发现更深层次的潜在目标。JSON输出支持:结果可以以JSON格式输出,方便后续分析或集成到其他工具中。

语法及参数

基本语法:

ffuf -u 目标地址/FUZZ -w 字典

常用参数:

-w:指定字典路径

-X:指定请求方法

-d:指定post传参数据

-b:指定cookie数据

-u:指定目标URL

-H:指定HTTP头部

-r:遵循重定向

-c:为输出着色

-p:请求之间的“延迟”秒数,或随机延迟范围。例如“0.1”或“0.1-2.0”

-timeout:指定超时时间

-sf:当 > 95% 的响应返回 403 Forbidden 时停止(默认值:false)

-t:并发线程数。(默认值:40)

-v:详细输出,打印完整 URL 和重定向位置(如果有)以及结果。(默认值:false)

-fs:忽略为该大小的响应包

-fc:忽略为该状态码的响应包

-maxtime:指定最大执行时间

-maxtime-job:指定每个作业的最大时间

-recursion:启用递归扫描

-recursion-depth:指定递归扫描的深度

-recursion-strategy:递归策略“default”表示基于重定向,“greedy”表示对所有匹配项进行递归(默认值:default)

-mc all:显示所有成功匹配的内容

–input-cmd:指定了一个输入命令,用来生成FUZZ的替换值

-o:将输出写入文件

-of:输出文件格式。可用格式:json、ejson、html、md、csv、ecsv(或,所有格式均为“all”)(默认值:json)

常见用法

FUZZ目录

ffuf -w /path/to/wordlist -u https://target/FUZZ

FUZZ 参数名

ffuf -w /path/to/paramnames.txt -u https://target/script.php?FUZZ=test_value

FUZZ 参数值

ffuf -w /path/to/values.txt -u https://target/script.php?valid_name=FUZZ

FUZZ POST Data

ffuf -w /path/to/postdata.txt -X POST -d "username=admin\&password=FUZZ" -u https://target/login.php

FUZZ 递归

ffuf -w /path/to/wordlist -u https://target/FUZZ -maxtime-job 60 -recursion -recursion-depth 2

注意:字典内开头不要有 / 不然不会进行递归的

尽量使用-maxtime-job与-recursion递归扫描一起使用,用于指定每个目录递归扫描时间,避免扫描时间过长

带cookie扫描(-b)

ffuf -u http://192.168.111.130/DVWA-master/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -b "security=low; PHPSESSID=pj0emeebmimf3t9ddpv6pknah0"

多个字典同时使用

使用格式:

ffuf -u 目标地址/FUZZ1:FUZZ2 -w 字典:FUZZ1 -w 字典:FUZZ2

举例:

ffuf -u https://target/example1.php?FUZZ1=FUZZ2 -w /usr/share/SecLists-2022.2/Discovery/Web-Content/burp-parameter-names.txt:FUZZ1 -w /usr/share/SecLists-2022.2/Fuzzing/fuzz-Bo0oM.txt:FUZZ2

批量对目标进行测试

ffuf -w dict.txt:FUZZ -w targets.txt:URL -u URLFUZZ -mc 200 -of csv -o result.txt

相关内容