Sådan brute kraft effektivt uden Burp Pro

Wfuzz og SecLists en kamp lavet i himlen.

I løbet af den sidste måned har jeg forsøgt at skelne mit recon-spil fra andre hackere. Selvom dette ikke er revolutionerende tip, tror jeg, de er underudnyttet kriminelt. Vær dog opmærksom på, at disse skaber en vis støj og muligvis får dig sortlistet på tværs af CDN'er eller endda internetudbydere, så prøv ikke at blive for vild med din test. De værktøjer, jeg er ved at dele, skal hjælpe dig både med CTF'er og bug bounties.

Først og fremmest fortalte jeg mig selv, at jeg ville få Burp Suite Pro efter min første store dusør, der kom for 3 måneder siden ved hjælp af wfuzz. wfuzz er et meget alsidigt værktøj, der kan bruges til mange ting. Personligt bruger jeg det hovedsageligt til opdagelse af indhold, admin-overtagelser og tæller slutpunkter, der er sårbare for IDOR. Jeg vil prøve at forklare, hvordan du bruger værktøjet, men intet, jeg kan sige, erstatter dokumentationen, så jeg foreslår, at du læser det først.

Den enkleste måde at bruge wfuzz på er til hurtig opdagelse af indhold. Dette er meget nyttigt til CTF og bugbelønning. Først og fremmest foreslår jeg at klone SecLists i dit wfuzz-bibliotek. Jeg lavede nogle personlige ændringer til ordlisterne der, men og i eksemplet bruger jeg en stor katalogordliste.

wfuzz -z-fil, ldir.txt -t 150 - hc 418,404,403,302,301 https://vuln.target.com/FUZZ

Jeg vil nedbryde ovenstående kommando, første parameter -z fil, er at specificere ordliste wfuzz erstatter FUZZ nøgleord med. -t står for tråde, så det bruger 150 tråde. -hc bruges til at skjule http-svar, så 418.404.302 svar vises ikke, da vi for det meste er interesseret i 200 svar til indholdsopdagelse.

Jeg tror, ​​at det vigtigste ved at bruge wfuzz er at vide, hvordan man filtrerer resultaterne ved hjælp af -hc -hh -hl osv. Først filtrerer man efter HTTP-statuskode, den anden filtrerer efter karaktertælling som svar og tredje filterer efter antal linjer vendte tilbage som svar. Afhængigt af hvad du leder efter, vil du filtrere efter forskellige metoder for at få de rigtige resultater. Her er, hvordan et ægte verdensløb kan se ud, hvor jeg forsøger at finde IDOR af private profilbilleder.

$ wfuzz -z fil, m.txt --hc 404,403 -t 100 https://REDACTED.com/avatars/FUZZ/normal_avatar.png
************************************************** ******
* Wfuzz 2.2.9 - Web Fuzzer *
************************************************** ******

Mål: https://REDACTED.com/avatars/FUZZ/normal_avatar.png
Samlede anmodninger: 75000

================================================== ================
ID-svarlinjer Word Chars nyttelast
================================================== ================

022179: C = 200 25 L 143 W 6754 Ch "REDAKTERET"
039413: C = 200 68 L 341 W 18338 Ch "REDAKTERET"
055859: C = 200 138 L 813 W 41353 Ch "REDAKTERET"
063779: C = 200 47 L 212 W 7588 Ch "REDAKTERET"
069880: C = 200 159 L 775 W 33480 Ch "REDAKTERET"
072513: C = 200 102 L 485 W 23472 Ch "REDAKTERET"

Samlet tid: 105.0043
Behandlede anmodninger: 75000
Filtrerede anmodninger: 74994
Forespørgsler / sek .: 714.2557

Jeg har et par flere hurtige tip, hvis du vil bruge wfuzz effektivt.

  1. For indlægsanmodninger formaterer curl-kommandoen sådan:
curl 'https: // REDACTED / login' -H 'autoritet:' -H 'cache-kontrol: max-age = 0' ... - data 'csrf_token = 5ed1ed15fd8aceadb94e471d4bacc51936b54b28 & come_from =% 2F & login = admin & password = hunter12' - komprimeret
-------------------------------------------------- ------------------
wfuzz -z-fil, passwords.txt --hc 403.200 -t 100 -d 'csrf_token = 5ed1ed15fd8aceadb94e471d4bacc51936b54b28 & come_from =% 2F & login = admin & password = FUZZ' -H 'autoritet:' -H 'cache-control .. max-age = max-age = https: // REDACTED / login

2. Generer et par nyttige nyttelaster selv for at tilføje ordlisterne, for eksempel alle 5-cifrede numre osv

limbo @ LimBomber: ~ / wfuzz / wordlist $ head 20hex.txt
db4fefbc5d617dc676f2
954fdebfdbca06455f9c
0d90baa6da88f989fd21
440f1f5d2ffeb7b33293
c858d853c5446e6c0b5b
cde6016e932cfcd06648
5d2a83523dd9750322a9
8cbdda6b8fdf39319dbd
f2a257a412650c30c162
bc049915fc636afed9ee
limbo @ LimBomber: ~ / wfuzz / wordlist $ head 6rand.txt
22u01L
aAZAH2
oFUk8g
9i6Dpp
u9mY6E
wyxndG
vPncFw
801Uo8
d7RzKd
6SL0RU
limbo @ LimBomber: ~ / wfuzz / wordlist $ head 4dig.txt
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
limbo @ LimBomber: ~ / wfuzz / wordlist $ cat md.py
import md5
for i inden for rækkevidde (10000, 85000):
        m = md5.new ()
        m.update (str (i))
        print (m.hexdigest ())

Det er alt, hvad jeg har i øjeblikket, er du velkommen til at give kommentarer eller række ud på Twitter med spørgsmål, og jeg vil prøve at besvare dem bedst jeg kan.