Regular expression Denial of Service - ReDoS
Regular expression Denial of Service - ReDoS
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Regular Expression Denial of Service (ReDoS)
Regular Expression Denial of Service (ReDoS) se dešava kada neko iskoristi slabosti u načinu na koji regularni izrazi (način pretrage i usklađivanja obrazaca u tekstu) funkcionišu. Ponekad, kada se koriste regularni izrazi, mogu postati veoma spori, posebno ako deo teksta s kojim rade postane veći. Ova sporost može postati toliko loša da raste veoma brzo čak i sa malim povećanjima u veličini teksta. Napadači mogu iskoristiti ovaj problem da nateraju program koji koristi regularne izraze da prestane da funkcioniše ispravno na duži vremenski period.
The Problematic Regex Naïve Algorithm
Check the details in https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
Evil Regexes
Zli obrazac regularnog izraza je onaj koji može da se zaglavi na kreiranom unosu uzrokujući DoS. Zli regex obrasci obično sadrže grupisanje sa ponavljanjem i ponavljanje ili alternativu sa preklapanjem unutar ponovljene grupe. Neki primeri zlih obrazaca uključuju:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x} za x > 10
Svi su ranjivi na unos aaaaaaaaaaaaaaaaaaaaaaaa!
.
ReDoS Payloads
String Exfiltration via ReDoS
U CTF-u (ili bug bounty) možda kontrolišete Regex sa kojim se usklađuje osetljiva informacija (zastava). Tada bi moglo biti korisno da stranica zamrzne (timeout ili duže vreme obrade) ako je Regex usklađen i ne ako nije. Na ovaj način ćete moći da izvučete string karakter po karakter:
U ovom postu možete pronaći ovo ReDoS pravilo:
^(?=<flag>)((.*)*)*salt$
Primer:
^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
U ovoj analizi možete pronaći ovo:
<flag>(((((((.*)*)*)*)*)*)*)!
U ovoj analizi koristio je:
^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
ReDoS Controlling Input and Regex
Sledeći su ReDoS primeri gde kontrolišete i unos i regex:
Alati
Reference
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated