文件上传靶场搭建:
参考链接:
Docker 搭建 upload-labs 靶场_K’illCode的博客-CSDN博客
upload-labs通关详细教程_吃_早餐的博客-CSDN博客
Upload-labs靶场通关 - FattyGo - 博客园 (cnblogs.com)
PHP $_FILES函数详解 - 1O(∩_∩)O1 - 博客园 (cnblogs.com)
upload-labs通关(Pass-16~Pass-21)_需要开启php_exif模块_仙女象的博客-CSDN博客
upload-labs pass-1-21 wp(附源码解析)_“该文件不允许上传,请上传” + allow_ext + “类型的文件,当前文件类型为:” +_Ph03n1x丶的博客-CSDN博客
1.sudo docker search upload-labs
2.sudo docker pull monstertsl/upload-labs
3.udo docker run -it -d -p 8090:80 monstertsl/upload-labs
4.删除容器
sudo docker rm -f ae73ce877d19
5.删除image
sudo docker rmi -f c0ny1/upload-labs
6.进入容器
sudo docker exec -it 4f9c /bin/bash
查看靶场页面
1、前端验证绕过
1.直接上传1.php,发现了弹窗,可能是js检测
绕过js检测
2.如何绕过:
将一句php一句话木马文件名改为.jpg,并在burpsuite修改其文件后缀名,并上传发现上传成功
3.直接访问该路径:
http://192.168.199.129:8090/upload/2.php?1=phpinfo();
逗号不能少
4.利用中国蚁剑连接
5.使用冰蝎连接
5.1参考连接:
打开冰蝎
java -jar Behinder.jar
将冰蝎自带的shell,重命名bx.jpg 上传
2、Content-Type(MIME)方式绕过
1.首先直接上传1.php,发现上传失败
2.修改文件类型(MIME)后成功上传
3.使用蚁剑进行连接
4.查看源代码
3、黑名单绕过
1.直接上传1.php文件,上传失败
2.阅读源代码:
php文件上传利用的常见函数:
https://blog.csdn.net/qq_35630119/article/details/122642068
通过阅读源代码,发现对.php,.aspx,.php,.jsp 文件后缀名进行了过滤
并在此之前,对文件名进行一系列操作:
trim() 函数移除字符串两侧的空白字符或其他预定义字符
3.修改其后缀名为1.phphtml,发现上传成功,但是上传的名字重命名了
文件上传成功,但是好像蚁剑连不上
4.Pass-04(黑名单验证,.htaccess)
1.直接上传1.php,失败
2.查看源代码,比第三关添加了跟多的过滤
本pass禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件!
3 .htaccess基础知识重点内容
.htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
它里面有这样一段代码:AllowOverride None,如果我们把None改成All
3.将一句话木马写入2.php,并更改后缀名为2.jpg即可绕过
5.
6.大小写绕过
1.直接上传1.php 失败
2.查看代码,可以发现大小写绕过
3.使用burpsuite进行大小写绕过
7.空格绕过
但是好像并没有执行成功
8.点绕过
9.::$DATA绕过
php在window的时候如果文件名+“::$DATA
"会把::$DATA
之后的数据当成文件流处理,不会检测后缀名,且保持”::$DATA
"之前的文件名 他的目的就是不检查后缀名。
但是好像不能执行
10.空格绕过
11.替换改写
12. 00截断绕过
如果文件名为:1.php
那么file_ext=php
如果为:1.php00
file
php版本>5.3.4不符合
13.POST %00绕过
14.制作图片马
参考连接:
图片马制作_制作图片马命令_平心静气深呼吸的博客-CSDN博客
我们可以理解为,作者会通过二进制码,来判断上传的文件格式,如果不是jpg、png、gif的话会无法上传。
制作木马图片直接上传。
图片马上传成功,但是没有显示
upload-labs:pass-14_upload-labs 14_羽.的博客-CSDN博客
需要和文件包含漏洞结合运用
15.使用图片马上传
16.开启php——exif
(跳过)
默认已经开启,直接上传即可
17.二次渲染
这是关于二次渲染的题,就是在后端同过二次渲染,将图片中的违法代码删除掉
重新渲染也没有去除我的马
18.可以直接上传
19.竞态竞争
20.post截断
21
其他:
1.burpsuite使用技巧
0.参考链接:
https://blog.csdn.net/qq_44159028/article/details/116349896
1.burpsuite里面的中文乱码如何解决
mg-q09buKOI-1695354674666)]
[外链图片转存中…(img-0oloJ9qS-1695354674666)]
[外链图片转存中…(img-ZMg5yzp3-1695354674666)]
[外链图片转存中…(img-uXnOXouC-1695354674667)]
20.post截断
21
其他:
1.burpsuite使用技巧
0.参考链接:
https://blog.csdn.net/qq_44159028/article/details/116349896
1.burpsuite里面的中文乱码如何解决
[外链图片转存中…(img-tcFhY1fS-1695354674667)]
[外链图片转存中…(img-IUPPaMLT-1695354674667)]