Regular expression Denial of Service - ReDoS
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
'n Regular Expression Denial of Service (ReDoS) gebeur wanneer iemand voordeel trek uit swakhede in hoe regular expressions (n manier om patrone in teks te soek en te pas) werk. Soms, wanneer regular expressions gebruik word, kan hulle baie stadig raak, veral as die stuk teks waarmee hulle werk groter word. Hierdie traagheid kan so erg raak dat dit regtig vinnig groei met selfs klein verhogings in die teksgrootte. Aanvallers kan hierdie probleem gebruik om 'n program wat regular expressions gebruik, te laat ophou om behoorlik te werk vir 'n lang tyd.
Kyk na die besonderhede in https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
'n Boosaardige regular expression patroon is daardie een wat kan vastloop op vervaardigde invoer wat 'n DoS veroorsaak. Boosaardige regex patrone bevat tipies groepering met herhaling en herhaling of alternasie met oorvleueling binne die herhaalde groep. Sommige voorbeelde van boosaardige patrone sluit in:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x} vir x > 10
Al hierdie is kwesbaar vir die invoer aaaaaaaaaaaaaaaaaaaaaaaa!
.
In 'n CTF (of bug bounty) mag jy die Regex beheer waar 'n sensitiewe inligting (die vlag) mee ooreenstem. Dan kan dit nuttig wees om die bladsy te laat vries (timeout of langer verwerkingstyd) as die Regex ooreengestem het en nie as dit nie gedoen het nie. Op hierdie manier sal jy in staat wees om die string karakter vir karakter te exfiltreer:
In hierdie pos kan jy hierdie ReDoS reël vind: ^(?=<flag>)((.*)*)*salt$
Voorbeeld: ^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
In hierdie skrywe kan jy hierdie een vind:<flag>(((((((.*)*)*)*)*)*)*)!
In hierdie skrywe het hy gebruik: ^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
Die volgende is ReDoS voorbeelde waar jy beheer oor beide die invoer en die regex het:
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)