未知后缀名解析漏洞
该漏洞与Apache、php版本无关,属于用户配置不当造成的解析漏洞。在有多个后缀的情况下,只要一个文件含有.php
后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。
启动upload-labs-env-win-0.1目录下的phpstudy,打开bp自带的浏览器,访问虚拟机的本机地址127.0.0.1,来到upload-labs第七关:
![在这里插入图片描述](https://img-blog.csdnimg.cn/322dcbf4fecd4648bdfe96c6048ca12d.png)
新建一个1.php文件,写入一句话木马,加上phpinfo的执行命令:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c79f0f7324054e96b1340c7d97e92a99.png)
上传1.php文件,提示上传失败,不允许该文件类型上传:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9b0b0e2136e34e57aaa2643ef8c9c529.png)
用bp抓包,发送到repeater模块,修改文件后缀名为未知后缀,点击上传,上传成功:
![在这里插入图片描述](https://img-blog.csdnimg.cn/65305bd9661343b08d03087c0ac5561c.png)
访问文件上传的网址127.0.0.1/upload,可以找到刚才上传的文件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0c62769fcee44cbcbea73e47ab2b08ba.png)
并且可以执行里面的phpinfo()命令,成功回显(未知后缀名解析时其中包含.php则会被识别成php文件):
![在这里插入图片描述](https://img-blog.csdnimg.cn/e263f3d5fda64258ace1148aa5931f57.png)
多后缀名解析漏洞
启动环境
来到httpd/apache_parsing_vulnerability靶场
cd vulhub/httpd/apache_parsing_vulnerability
安装环境并启动:
sudo docker-compose up -d && sudo docker-compose up -d
安装中:
![在这里插入图片描述](https://img-blog.csdnimg.cn/37263d5d032340ac922bd73c2ecec063.png)
安装完成,启动成功:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d77d3bec8cf34f1581b3a932a3489346.png)
在浏览器中输入10.9.75.45启动环境:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c95996e4470f47d9a4e005e69adc61c4.png)
漏洞复现
上传一个包含一句话木马和phpinfo函数的1.php文件,提示上传失败:
![在这里插入图片描述](https://img-blog.csdnimg.cn/e4670ac1fdd74e5fb3f5b5299f1d3c89.png)
用bp抓包,发送到repeater模块,修改content-Type为image/png,使用之前的未知后缀名的方法发现上传失败,说明此处上传文件用来白名单限定上传文件的格式,无未知后缀名解析漏洞:
![在这里插入图片描述](https://img-blog.csdnimg.cn/119264232a2446909c6922381a73fde9.png)
用bp抓包,发送到repeater模块,修改content-Type为image/png,修改文件名为1.php.png,上传成功:
![在这里插入图片描述](https://img-blog.csdnimg.cn/63bdde133e7f48aaa2fb8f1ac351df7e.png)
换行解析漏洞
启动环境
来到httpd/apache_parsing_vulnerability靶场
cd vulhub/httpd/apache_parsing_vulnerability
安装环境并启动:
sudo docker-compose up -d && sudo docker-compose up -d
安装环境完成,提示我们8080端口被占用,需要修改端口:
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b3a2c63a8fc4c00b7bd8a4532c76299.png)
复制配置文件:
cp docker-compose.yml docker-compose.me.yml
打开复制的文件修改端口:
vim docker-compose.me.yml
如图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ec922c95aa614e69991d78ac7056d83d.png)
以修改的配置文件打开环境:
sudo docker-compose -f docker-compose.me.yml up -d
![在这里插入图片描述](https://img-blog.csdnimg.cn/93a1a4ac1a8641b3a27d9d4dd374c847.png)
在浏览器中输入10.9.75.45:8082启动环境:
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc88c76a4ef1402398872a83e17d9b97.png)
漏洞复现
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.2.4.29版本中存在一个解析漏洞.
在解析PHP时, l.php\x0A 将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
上传一个1.php文件,显示上传失败,用bp抓包后发到repeat模块,点击hex,查看该文件的16机制编码(网络上的文件数据包都是以这样的2进制字节流传输的),将evil.php后面的数改为0a:
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd82d1b34d004a88a1c2c9db8119dea6.png)
修改后上传,此时可以上传成功:
![在这里插入图片描述](https://img-blog.csdnimg.cn/71a9fbe13be14a358e512de73a16e663.png)
访问后成功回显:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a57d1040febb4ae782b717a6a512bac5.png)