2013-06-17 3 views
4

Что на самом деле означает ARGS, ARGS_NAMES в наборах правил ядра mod_security?Что на самом деле означает ARGS, ARGS_NAMES в mod_security crs?

Я уже упоминал Modsecurity2 Apache Reference, но у меня не было четкой идеи.

Может кто-нибудь дать мне конкретную идею, желательно с объяснением, что это на самом деле и как что-то фактически вызывает правило, как показано ниже.

Правило, приведенное ниже, является положительным для случаев, таких как «x и 6» и т. Д., В общем случае любое «и», за которым следует цифра. В этом случае я понимаю, что такое имя файла запроса. что я не понимаю, это ARGS и ARGS_NAMES. Мне нужен конкретный пример со ссылкой на приведенное ниже правило.

SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* "(?i)\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')\s*[=]|\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')\s*[<>]|\band\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')" \ 
    "phase:2,rev:'2.2.5',capture,t:none,t:urlDecodeUni,ctl:auditLogParts=+E,block,msg:'SQL Injection Attack',id:'959072',tag:'WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',logdata:'%{TX.0}',severity:'2',setvar:'tx.msg=%{rule.msg}',setvar:tx.sql_injection_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}-WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}" 

ответ

4

Пример:

http://server.invalid/test.php?pretty_arg=test123&ugly_arg=345test 

ARGS_NAMES = "pretty_arg","ugly_arg" 
ARGS = "pretty_arg:test123","ugly_arg:345test"  

Смотрите здесь:

Если вы хотите удалить аргумент из конкретного вызова , вы можете использовать

SecRule REQUEST_FILENAME "@streq /path/to/file.php" "phase:1,id:2001,t:none,nolog,pass,ctl:ruleRemoveTargetById=959072;ARGS:ugly_arg" 
+0

Я вижу .. Можете привести пример со ссылкой на правило sec i, упомянутое выше? Мое понимание дает мне что-то вроде, если пара name + value содержит что-то, что соответствует регулярному выражению, тогда оно даст положительный результат. Из того, что вы говорите, я предполагаю, что здесь ARGS будет «именем html textarea: значением текстовой области». Предположим, что вместо того, чтобы вообще удалить правило, если я должен был поставить исключение, я должен сделать a! ARGS: имя поля или! ARGS_NAMES: имя_файла. Второй, по-видимому, несколько логичен для меня. Я новичок в этой работе mod_sec! – Enihr

+0

Обновлено ... надеюсь, что поможет ^^ – Shuro

+0

Большое спасибо за вашу помощь. У меня здесь немного путаницы. Когда вы дали и пример для ARGS, вы дали его как ARGS = «ugly_arg: 345test». Но при создании настраиваемого исключения его^ARGS: ugly_arg ... Ummm, логически не должно быть «ugly_arg: 345test»? Ну, я пробовал, и он не работает нормально ... То, что вы сказали, работает. Мне просто интересно, почему это соглашение .. – Enihr

Смежные вопросы