Назад | Перейти на главную страницу

snort: не удается запустить правило с полями uricontent и content

Я играю с snort, чтобы понять правила, и пытаюсь запустить следующее правило:

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-PHP PhpGedView PGV base directory manipulation"; flow:to_server,established; uricontent:"_conf.php"; nocase; content:"PGV_BASE_DIRECTORY"; nocase; reference:bugtraq,9368; classtype:web-application-attack; sid:2926; rev:1;)

AFAIU говорит, что если URI содержит _conf.php и PGV_BASE_DIRECTORY находится в контенте (независимо от его положения), то срабатывает правило.

Я сделал этот HTTP-запрос в качестве теста:

GET _conf.php HTTP/1.1
file: PGV_XXX_BASE_DIRECTORY

PGV_BASE_DIRECTORY

а затем отправил его на ip-адрес сервера snort с помощью nc. Я проверил свои логи: ничего. Однако, если я удалю _XXX во второй строке запроса я получаю предупреждение:

Jun  3 15:39:00 snort snort[20168]: [1:2926:1] WEB-PHP PhpGedView PGV base directory manipulation [Classification: Web Application Attack] [Priority: 1] {TCP} 1.2.3.100:34859 -> 10.0.2.18:80

Почему PGV_BASE_DIRECTORY в нижней части моего запроса не сработало правило? Что я упустил?

редактировать

Похоже, что при использовании метода POST правило срабатывает. Может быть, это связано с препроцессором http?