Вызов MediaWiki для api.php вызывает попытку атаки со злоупотреблением кодировкой URL-адреса

#php #regex #apache #mediawiki #mod-security

#php #регулярное выражение #apache #mediawiki #мод-безопасность

Вопрос:

У меня необычная (для меня) проблема с MediaWiki и ModSecurity на общем хостинге. По-видимому, сохранение изменений или просмотр страниц вызывает тревогу в модуле ModSecurity Apache. После нескольких таких тревог пользователь отключается от сервера модулем брандмауэра.

В связи с тем, что сервер не находится под моим контролем, я хотел бы понять основную причину (например, правило регулярных выражений) и, возможно, исправить MediaWiki.

Объединив мои необработанные записи журнала доступа и предоставленный журнал ошибок, я обнаружил, что почти все случаи вызваны ссылкой на api.php такие , как:

 CLIENT IP - - [21/Jun/2014:15:08:18 -0400] "POST /api.php HTTP/1.1" 301 20 "http://adres here/index.php?title=La_vida_cotidianaamp;action=editamp;redlink=1" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0"
 

приводит к:

 [Sat Jun 21 15:08:18 2014] [error] [client IP here] ModSecurity: Access denied with code 406 (phase 2). Pattern match "\\%(?![0-9a-fA-F]{2}|u[0-9a-fA-F]{4})" at ARGS:text. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "25"] [id "1234123440"] [msg "URL Encoding Abuse Attack Attempt"] [severity "WARNING"] [hostname "hostname here"] [uri "/api.php"] [unique_id "U6XYIsg-ZiYAAD3gn9YAAAAO"]
 

Оказалось, что есть и другие случаи (меньшинство):

 CLIENT IP - - [21/Jun/2014:14:47:51 -0400] "GET /wiki/Página_principal HTTP/1.1" 200 9378 "http://address here/index.php?title=La_vida_cotidianaamp;action=editamp;redlink=1" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0"

[Sat Jun 21 14:47:51 2014] [error] [client IP] ModSecurity: Access denied with code 406 (phase 2). Pattern match "\\%(?![0-9a-fA-F]{2}|u[0-9a-fA-F]{4})" at ARGS:wpTextbox1. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "25"] [id "1234123440"] [msg "URL Encoding Abuse Attack Attempt"] [severity "WARNING"] [hostname ""] [uri "/index.php"] [unique_id "U6XS8sg-ZiYAAGE2n70AAAAl"]
 

Я использую:

  1. Списки в элементе списка MediaWiki 1.21 ( FlaggedRevs, Translate, текстовый редактор Babel и jQuery)
  2. PHP 5.4,
  3. Apache 2.2 с перезаписью url.

Ответ №1:

Позиция американских разработчиков MediaWiki всегда заключалась в том, что mod_security просто несовместим с MW. Даже если вы решите свою текущую проблему, next mod_security будет возмущаться именами пользователей, содержащими одинарные кавычки, например, потому что «обнаружена атака с использованием SQL-инъекций»; и так далее. mod_security просто не подходит для сайтов с размещенным пользователем контентом.