1

私は私の人生のために正規表現を読むことができません。
ホストの最後の更新でmod_securityが突然トリガーされる理由を理解するのに役立つ人がいますか?

このmod_securityエラーが発生します:

メッセージ:コード406(フェーズ2)でアクセスが拒否されました。\b(\d+) ?= ?\1\b|[\'"](\w+)[\'"] ?= ?[\'"]\2\bREQUEST_HEADERS:Cookieでのパターン一致" "。[ファイル"/usr/local/apache/conf/modsec2.user.conf"][行"94"][id "959901"][msg"SQLインジェクション攻撃"][データ"1=1"][重大度" CRITICAL"][タグ"WEB_ATTACK/ SQL_INJECTION "]

このエラーを生成したログに記録されたCookieの1つは次のとおりです。

クッキー: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 =(referral)| utmcmd = referral | utmcct = / admin / corq /

「admin」が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 =(direct)| utmccn =(direct)| utmcmd =(none)

「ui-tabs-1=1」は1=1の注入のように見えるため、これがトリガーになりますか?

このパターンマッチングは正確には何ですか?

4

1 に答える 1

2

正規表現が最初のパターンと一致しないため、何が間違っているのかわかりません。

しかし、それは1=12番目のパターンのセクションと一致するので、あなたの仮定は正しいです。

正規表現の説明:

\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.
于 2012-01-18T16:40:14.980 に答える