что делает это правило регулярных выражений mod_security? - PullRequest
1 голос
/ 18 января 2012

Я не могу прочитать регулярное выражение для моей жизни.
У кого-нибудь есть секунда, чтобы помочь мне понять, почему mod_security внезапно срабатывает с последним обновлением моих хостов?

I 'получаю эту ошибку mod_security:

Сообщение: доступ запрещен с кодом 406 (этап 2).Совпадение с шаблоном "\b(\d+) ?= ?\1\b|[\'"](\w+)[\'"] ?= ?[\'"]\2\b" в REQUEST_HEADERS: Cookie.[file "/usr/local/apache/conf/modsec2.user.conf"] [строка "94"] [id "959901"] [msg "Атака SQL-инъекций"] [data "1 = 1"] [серьезность »КРИТИЧЕСКИЙ "] [тег" WEB_ATTACK / SQL_INJECTION "]

Вот один из файлов cookie, которые создали эту ошибку:

Cookie: pmr = 9d800ab159baf3962d1c777225b4b632;pmr_referrer = HTTP% 3A% 2F% 2Frateyourmusic.com% 2Fadmin% 2Fcoraq% 2F% 3F1% 3D1% 26status% 3DW% 26show% 3D10% 26start% 3D7020;__utma = 229707933.920390620.1326769663.1326769663.1326769663.1;__utmb = 229707933.1.10.1326769663;__utmc = 229707933;__utmz = 229707933.1326769663.1.1.utmcsr = rateyourmusic.com | utmccn = (реферал) | utmcmd = referral | utmcct = / admin / corq /

Является ли это срабатыванием, поскольку "admin" находится в файле cookie???

Вот еще один ...

Cookie: ui-tabs-1 = 1;superBAGUS = af14474b9bcc7ec3ae436e58ba172520;superBAGUS_referrer = ...;superBAGUS_admin = 2% 3A747167a9cd89703dbfafe3c7a5c523b4;ACCO = acco_1;superBAGUS_adviews = .2576.2580 .;__utma = 10910262.1479346800.1326871079.1326871079.1326873539.2;__utmb = 10910262.10.8.1326873800604;__utmc = 10910262;__utmz = 10910262.1326871079.1.1.utmcsr = (прямой) | utmccn = (прямой) | utmcmd = (нет)

Является ли это срабатыванием, поскольку «ui-tabs-1 = 1» выглядит как 1 =1 инъекция ???

Что именно соответствует этому образцу?

1 Ответ

2 голосов
/ 18 января 2012

Регулярное выражение не соответствует первому шаблону, поэтому я не могу сказать, что может быть не так.

Но он соответствует разделу 1=1 второго шаблона, поэтому ваше предположение верно.

Объяснение регулярного выражения:

\b             # Assert position at the start of an alphanumeric "word"
(\d+)          # Match a number
 ?= ?          # Match =, optionally surrounded by spaces
\1             # Match the same number as before
\b             # Assert position at the end of an alphanumeric "word"
|              #  or
['"](\w+)['"]  # Match a quoted "word"
 ?= ?          # Match =, optionally surrounded by spaces
['"]\2\b       # Match a quote and the same word as before.
...