apache介绍
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。并且能支持基础的HTML、PHP、Perl、Python等语言。
未知后缀解析漏洞
过程:用户上传文件->apache匹配mime类型(/etc/mime.types)->php.conf正则匹配。
漏洞产生原因
开发者增加了Addhandler配置:Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法 识别(不在mime.types内),则继续向左识别,直到可识别后缀为止;
漏洞危害
该解析漏洞可以使得入侵者绕过服务端waf的检测,进而getshell。
漏洞复现
这里使用Apache和upload-labs第三关环境来进行试验
当直接上传php后缀文件的时候,提示不允许上传.asp,.aspx,.php,.jsp后缀文件!为白名单验证
之后上传一个phpinfo.php.aaa文件,成功上传并解析
在upload-labs的3-10关均可以使用该方法进行利用
漏洞修复
- 在apache配置文件中,禁止.php.这样的文件执行,配置文件里面加入
1 | <Files ".(php.|php3.)"> |
- 用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代 码如下:
1 | <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .(php.|php3.) /index.php RewriteRule .(pHp.|pHp3.) /index.php RewriteRule .(phP.|phP3.) /index.php RewriteRule .(Php.|Php3.) /index.php RewriteRule .(PHp.|PHp3.) /index.php RewriteRule .(PhP.|PhP3.) /index.php RewriteRule .(pHP.|pHP3.) /index.php RewriteRule .(PHP.|PHP3.) /index.php </IfModule> |
HTTPD换行解析漏洞
(CVE-2017-15715)
漏洞产生原因
apache这个解析漏洞的根本原因就是这个 $ ,在设置了 RegExp 对象的 Multiline 属性的条件下, $ 还会匹配到字符串结尾的换行符。默认的apache配置即可利用,因为默认apache配置使用了 <FileMatch>:
在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略
漏洞危害
该解析漏洞可以使得入侵者绕过服务端waf的检测,进而getshell。
漏洞利用条件
1,Apache版本在2.4.0到2.4.29
2,获取文件名时不能使用 $_FILES[‘file’][‘name’] ,因为他会自动去掉换行。
漏洞复现
这个环境直接使用docker快速搭建
https://github.com/vulhub/vulhub/tree/master/httpd/CVE-2017-15715
1 | cd vulhub-master/httpd/CVE-2017-15715 |
访问8080端口即可
先上传一个phpinfo.php用burp抓包
添加一个+
号进行占位,之后再hex中将2b改为0a,也就是将+改为换行
上传成功后访问phpinfo.php%0a发现成功解析PHP代码
*Apache目录遍历漏洞 *
漏洞产生
配置错误导致的目录遍历
漏洞危害
可以查看网页目录,下载数据库等重要文件
漏洞复现
直接访问靶机ip即可看到目录遍历漏洞
漏洞修复
apache配置文件httpd.conf找到Options Indexs FollowSymLinks 修改为:Options FollowSymLinks
添加.htaccess文件
SSI远程命令执行漏洞
漏洞原理
当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd="id" -->
语法执行命令。
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为”服务器端嵌入”或者叫”服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
SSI可以完成查看时间、文件修改时间、CGI程序执行结果、执行系统命令、连接数据库等操作,功能非常强大。
影响版本:Apache全版本(支持SSI与CGI)
影响说明:绕过服务器策略,上传webshell
环境说明:PHP7.1 、 Apache2.4.25
漏洞复现
依然使用vulhub搭建环境
1 | cd vulhub-master/httpd/ssi-rce |
搭建成功后访问http://xxxxx:8080/upload.php即可看到一个文件上传页面
当正常上传一个php文件显示Unsupported filetype uploaded.
上传一个后缀为shtml的文件,其内容为:
<!–#exec cmd=”id” –>
能正常上传并且执行了id命令,存在远程命令执行漏洞
漏洞修复
1 | 1、可以关闭SSI服务。 |