Hashtag-Fuzz 는 WAF 및 CDN을 테스트하고 우회하도록 설계된 퍼징 도구입니다. 임의의 사용자 에이전트 및 헤더 값, 임의의 지연과 같은 고급 기능을 활용하여 멀티 스레딩 처리, 단어 목록의 선택적 청크 및 각 청크에 대한 라운드 로빈 프록시 회전을 통해 웹 애플리케이션에서 취약점을 식별하는 보안 전문가에게 강력한 솔루션을 제공합니다. 이 도구는 속도와 한계에 대한 WAF 테스트를 위해 클래스에서 거의 첫 번째이자 최고로 두드러집니다.
OS의 글로벌 액세스에 앱을 허용하십시오. 글로벌을 원하지 않으면이 스크립트와 동일한 폴더를 넣으십시오.
git clone https://github.com/Hashtag-AMIN/hashtag-fuzz.git
cd ./hashtag-fuzz
chmod +x ./hashtag-fuzz
./hashtag-fuzz사용 된 모든 라이브러리는 내장 된 파이썬 라이브러리이며 필요 없음 PIP;)
cp ./hashtag-fuzz /usr/local/sbin/이 도구는 각각 특정 구성을 갖는 4 개의 WAF 모드를 지원합니다.
| WAF 모드 | 설명 |
|---|---|
| 기입 | 최소한의 보호 메커니즘을 갖춘 기본 WAF 프로파일. 초기 테스트에 적합합니다. |
| 흔한 | 일반적인 보호 메커니즘을 갖춘 표준 WAF 프로파일. 일반 목적 테스트에 적합합니다. |
| 찬성 | 보다 정교한 보호 메커니즘을 갖춘 고급 WAF 프로파일. 전문가 급 WAF에 대한 테스트에 적합합니다. |
| 초기 | 가장 높은 수준의 보호 기능을 갖춘 프리미엄 WAF 프로파일. 엔터프라이즈 급 WAF에 대한 테스트에 적합합니다. |
Hashtag-Fuzz는 4 개의 WAF 모드를 지원하며 각각 고유 한 기능 및 구성을 제공합니다.
| 방법 | 퍼징을위한 스레드 제어 | 임의의 지연을 제어하십시오 | 무작위 사용자 에이전트 및 헤더 | 분할 된 wordliost의 cunck 크기 |
|---|---|---|---|---|
| 기입 | 기본 스레드 제어, 제한 20 스레드 | 최소 지연, 0.1-0.2s 사이의 임의 지연 | 임의의 사용자 에이전트 및 무작위 배정 3 내부 네트워크 시뮬레이션을위한 상단 헤더 | worlist를 250 덩어리로 나누었습니다 |
| 흔한 | 스레드 관리 개선, 제한된 10 스레드 | 0.2-0.5 사이의 임의 지연을 소개합니다 | 무작위 사용자 에이전트, 무작위 배정 6 로컬/개인 IP를 가진 상단 헤더 | worlist를 200 개의 덩어리로 나누었습니다 |
| 찬성 | 고급 스레드 제어, 제한된 5 스레드 | 요청 사이의 무작위 지연 0.5-1입니다 | 로컬/개인 범위를 갖춘 무작위 사용자 에이전트 및 무작위 배정 효율적인 헤더 | worlist를 100 개의 덩어리로 나누었습니다 |
| 초기 | 최대 스레드 제어, 제한된 1 스레드 | 최대 지연, 1-2 초 사이의 무작위 지연 | 가장 유용한 헤더 무작위 화 및 무작위 사용자 에이전트 | worlist를 50 개의 덩어리로 나누었습니다 |
└─# ./hashtag-fuzz -h
__ __ __ ___
/ / / __ /'___
___ __ ___ ___ ,_ __ __ / __/ __ __ ____ ____
_ ` /'__` /',__ _ ` / /'__` /'_ `_____ ,__/ / /_ ,`/_ ,`
/ L._/__,/` _/ L._/ L _____ _ _ /_/ //_/ /_
_ _ __/._/____/ _ _ __ __/._ ____ ____/ _ ____/ /_/__/_/___
/_//_//__//_//___/ /_//_//__//__//_//___L /_/ /___/ /____//____/
/____/
_/__/
The wrapper of ffuf
The nightmare of WAFs & CDNs
https://github.com/Hashtag-AMIN/hashtag-fuzz
usage: hashtag-fuzz [-h] [-u URL] [-U URLS] [-request REQUEST_RAW]
[-H HEADER] [-b COOKIE] [-d DATA] [-X METHOD] -w WORDLIST
[-waf {entry,common,pro,prime}]
[-cs chunk_SIZE] [-t THREAD] [-p RANDOM_DELAY]
[-x [PROXY]] [-xf PROXY_FILE] [-tor [TOR]]
[-o OUTPUT] [-of {txt,csv}]
[-a ADDITIONAL_CMD] [-v]
hashtag-fuzz wrapper for FFUF.
options:
-h --help show this help message and exit
-u --url URL Target URL
-U --urls URLS File include List of Target URLs
-request --request-raw REQUEST_RAW
File Path to raw request [-request-proto is default: https,
if need to change with -a command: -a="-request-proto http"]
-H --header HEADER Custom headers to add to requests
-b --cookie COOKIE Cookies to add to requests
-d --data DATA Data to send with the request for POST/PUT/PATCH methods
-X --method METHOD HTTP method to use (e.g., GET, POST, PUT)
-w --wordlist WORDLIST
Path to wordlist
-waf --waf-mode {ENTRY,COMMON,PRO,PRIME}
WAF or CDN behavior mode: entry, common, pro, or prime
-cs --chunk-size chunk_SIZE
Split each wordlist with Chunk size, (default=300)
-t --thread THREAD threads use in ffuf (default=[select in waf mode])
-p --random-delay RANDOM_DELAY
random delay range use in ffuf (default=[select in waf mode])
-x --proxy PROXY Proxy server|servers to use (c)
-xf --proxy-file PROXY_FILE
Proxy servers file to use
-tor --tor TOR use Tor proxy with unique(dynamic) IP address for each chunk of wordlist
(default=socks5://127.0.0.1:9050)
-o --output OUTPUT Output file name of FFUF result
-of --output-format {TXT,CSV}
Output of FFUF brief and useful mode: txt, csv
-a --additional-cmd ADDITIONAL_CMD
Additional FFUF commands
-v --verbose verbose mode default: False
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf entry
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf pro -cs 10./hashtag-fuzz -request ./raw-req.txt -w ./wordlist.txt -waf common./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf entry -cs 50 -H " X-header: header-val "
./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf pro -H ' Authorization: value_token ' echo ' http://site.tld ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 -d " var1=FUZZ&var2=val2 " -X " PUT "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 60 " X-header: FUZZ " -p ' 2-2.5 '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -b ' cookie=value_session ' default = http://127.0.0.1:8080은 -x (Burp의 경우), 유효한 URL이있는 다중 값 및 프록시 파일을 사용하여.
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -t 50 -x
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf entry -x ' http://proxy1.com '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 " header: header-val " -x ' http://proxy1.com ' -x ' http://proxy2.com '
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 100 -xf ./proxy.txt각 청크가 대상으로 전송 될 때마다 Tor 서비스가 다시 시작되고 새 IP가 가져 오므로 OS에서 서비스로 TOR을 추가해야합니다.
default = socks5 : //127.0.0.1 : 9050 사용 -TOR (기본 로컬 주소 TOR의 경우)
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 " header: header-val " -tor
echo ' http://test.it/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 80 -tor socks5://proxy1.tor:8000모든 OS에서 서비스로 Tor를 추가 할 수있는 도움말 및 문서
FFUF에 명령을 추가 해야하는 경우 -a/-추가 CMD 인수로 문자열로 쓸 수 있습니다.
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -d " data-var=FUZZ " -X " PUT " -a= " -mr '.*test' "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -tor -a= ' -ac ' Fuzz를 원하지만 WAF 또는 CDN 블록이 요청시 높은 속도로 원한다면 이러한 기술을 함께 사용하십시오.
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 20 -tor
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 30 -xf ./proxy.txt1-2 사이의 프라임 모드의 기본 임의 지연이지만 때때로 사용자 정의해야합니다.
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 10 -tor -p ' 2-2.5 '기본적으로 핸들 스레드를 처리하지만 다음과 같이 할 수 있습니다.
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 5 -tor -p ' 2.5-3 ' -t 1이 기능을 사용하는 데 유용한 중 하나, WIRH Paramspider 또는 Paramspider를 사용하십시오.
" urls_come_form_ParamSpider_with_FUZZ_keyword " | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 50 -tor