Regular expression Denial of Service - ReDoS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Відмова в обслуговуванні через регулярні вирази (ReDoS) відбувається, коли хтось використовує слабкі місця в тому, як працюють регулярні вирази (спосіб пошуку та зіставлення шаблонів у тексті). Іноді, коли використовуються регулярні вирази, вони можуть ставати дуже повільними, особливо якщо оброблюваний текст стає більшим. Ця повільність може настільки погіршитися, що зростає дуже швидко навіть при незначному збільшенні розміру тексту. Зловмисники можуть використовувати цю проблему, щоб змусити програму, яка використовує регулярні вирази, перестати працювати належним чином на тривалий час.
Перевірте деталі в https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
Злий шаблон регулярного виразу - це той, який може застрягти на спеціально підготовленому вводі, викликавши DoS. Злі шаблони регулярних виразів зазвичай містять групування з повторенням і повторення або чергування з перекриттям всередині повторюваної групи. Деякі приклади злих шаблонів включають:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x} для x > 10
Усі вони вразливі до вводу aaaaaaaaaaaaaaaaaaaaaaaa!
.
У CTF (або програмі винагороди за помилки) ви, можливо, контролюєте Regex, з яким збігається чутлива інформація (прапор). Тоді може бути корисно змусити сторінку зависнути (тайм-аут або тривалий час обробки), якщо Regex збігся і не якщо не збігся. Таким чином, ви зможете екстрагувати рядок символ за символом:
У цьому пості ви можете знайти це правило ReDoS: ^(?=<flag>)((.*)*)*salt$
Приклад: ^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
У цьому звіті ви можете знайти це: <flag>(((((((.*)*)*)*)*)*)*)!
У цьому звіті він використав: ^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
Наступні є прикладами ReDoS, де ви контролюєте як ввід, так і regex:
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)