当前位置:网站首页>【网络安全】文件上传靶场通关(1-11关)
【网络安全】文件上传靶场通关(1-11关)
2022-07-31 00:58:00 【m0_67401660】
博主昵称:
博主主页面链接:博主主页传送门
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;
目录
后续持续更新
一、简介
本次实验利用靶场为upload-labs-env
这个靶场作为文件上传初学者是很友好的,大部分关卡是比较基础的,而且可以看源码了解思路和开发的思路对于初学者来说十分的友好,所以本次汇总一下也是为了分享更多的资料给各位粉丝们学习交流。
二、实验准备
首先我们需要了解什么是一句话木马,什么是小马 什么是大马,其次我们需要了解文件上传绕过方式。在前面的文章中我分享过有关文件上传漏洞的绕过方式及其原理介绍。
链接:文件上传绕过原理
其次我们需要准备好webshell管理工具,比如蚁剑、冰蝎等,我在这里使用蚁剑进行演示。
最后,我们还需要burp抓包工具
使用方法请参考文章:Burp使用与实战
另外还需要用到010图片对比工具
工具下载链接:010图片解析工具
三、实战
1.第一关 —(前端绕过)
(1)看代码
我们看到代码中看到了白名单,可以作为一个信息点来使用。
(2)尝试上传
准备好一句话木马文件
尝试上传查看回显效果
出现一个弹框,很明显的白名单
那么我们尝试抓包看一下
我们发现无法抓包,那就说明页面请求没有发送到服务器,那么很有可能是基于前端的绕过方式.
(3)绕过方法
前面两步说明很清楚,这个很有可能是基于前端的过滤,所以我们尝试修改前端代码进行尝试
这里我们可以看到十存在一个前端事件,所以说这里我们可以利用代码修改删除事件进行绕过,那么我们来试一下
这里发现成功的绕过,下面补上一张截图十需要删除的前端事件。
我们对上传的文件进行查看,显示空白
下面我们尝试使用hackbar插件发送一个post请求
我们看到了phpinfo的文件,这里就进行了绕过。
2.第二关 —(MINE类型)
(1)看代码
这个我们也可以看到代码中显示如果咱们的后缀名不一样,那么回显出来的信息是文件类型不正确,请重新上传。说明这是一个黑名单。
(2)尝试上传
上传一句话木马文件
回显
(3)绕过方法
MINE类型绕过,我们看源码就可以看到过滤机制是对文件进行mine类型检测,
那么我们可以先抓包看一下。
将包发送到repeater模块进行重放,修改mine类型的后缀
构造url路径查看上传文件
成功绕过
3.第三关 —(修改后缀名绕过)
(1)看代码
分析:在代码中明显的可以看到构造了一个array数组进行验证,而且后面判断回显现实的为不允许上传xxx.xxx后缀文件,说明为黑名单检测。
(2)尝试上传
尝试上传一句话木马
发现回显是不允许上传,那么我们应该在怎么去绕过呢?
有一个思路:我们可以尝试抓包,对数据包进行修改看是否上传成功
(3)绕过方法
抓包
改包,将后缀php改成php2进行上传。
发送包,这里看到上传成功。
验证时候上传成功
上传成功。
4.第四关 — (.htaccess绕过)
(1)看代码
分析:我们能看到这里对大多数的后缀名做了限制,而且是属于黑名单范畴
(2)尝试上传
上传一句话木马
回显此文件不允许上传
那么我们这时候还是在看一下源码,主要看这里,我们发现虽然过滤了很多文件,但没有一个文件被忽略了,apache的内存在一个.htaccess特性文件,是可以利用进行绕过的。
(3)绕过方法
抓包
改包
释放包
验证
成功绕过。
5.第五关 —(大小写绕过)
(1)看代码
分析:这里代码我们可以了解到基本上我们所用的后缀都给过滤了,然后我们怎么办呢?
可以再看看代码的其他过滤机制,没有看到对大小写的限制,那么我们可以尝试
(2)尝试上传
上传一句话木马文件
回显
(3)绕过方法
抓包
改包
释放包
验证
成功绕过
6.第六关 —(空格绕过)
(1)看代码
(2)尝试上传
上传一句话木马文件
发现不允许上传,说明存在过滤,咱们之前研究过代码,看到没有限制空格绕过,那么咱们可以继续看一下是否可以绕过。
(3)绕过方法
抓包
改包
验证
成功绕过
7.第七关 —(.绕过)
(1)看代码
分析:代码中可以看到过滤机制,发现少了一项.绕过,那么咱们可以尝试一下
(2)尝试上传
(3)绕过方法
抓包
改包
验证
成功绕过
8.第八关 —(::$DATA绕过)
(1)看代码
分析:我们来分析一下代码:发现::$DATA没有过滤,那么我们可以尝试一下
我们来试一试
(2)尝试上传
还是一样的不允许上传,那么我们尝试下,看代码后分析的绕过方式
(3)绕过方法
抓包
改包
验证
成功绕过
9.第九关 —(. .绕过)
(1)看代码
分析:我们看代码中首先是删除了后缀中的点然后进行了首尾去空的操作,那么我们可以想,如果我们在后缀末尾加上一个.再加上一个空格,那么是不是属于恢复正常,那么我们再次利用点绕过的方式,应该是可以的,那么咱们来尝试一下
(2)尝试上传
上传一句话木马文件
我们发现也是无法上传,说明我们需要其他方式,通过代码的分析下面尝试绕过
(3)绕过方法
抓包
改包
验证
成功绕过
10.第十关 —(双写绕过)
(1)看代码
分析:这个地方的代码主要还是后缀名称被检测到之后,直接为空,但是只执行一次,所以说,我们可以尝试双写绕过的方式
(2)尝试上传
虽然上传成功,但是我们验证的时候是无法查看到phpinfo文件的,
(3)绕过方法
抓包
改包
验证
成功绕过
11.第十一关 —(00截断绕过)
(1)看代码
分析:代码中有一些信息很重要,我们发现是白名单判断,但$img_path是直接拼接,因此可以利用%00截断绕过
(2)尝试上传
这里明显的白名单,只允许这三种类型的文件上传。那么我们来进行绕过。
(3)绕过方法
抓包
改包验证,发现上传成功。
验证
成功绕过
四、总结
本次总结1-11关卡,下一篇继续分享
边栏推荐
- The level of ShardingSphere depots in actual combat (4)
- ShardingSphere之读写分离(八)
- Yolov7实战,实现网页端的实时目标检测
- SereTOD2022 Track2 Code Analysis - Task-based Dialogue Systems Challenge for Semi-Supervised and Reinforcement Learning
- 【多线程】
- MySQL——数据库的查,增,删
- 小程序-全局数据共享
- xss bypass: prompt(1)
- ShardingSphere之垂直分库分表实战(五)
- 24. 请你谈谈单例模式的优缺点,注意事项,使用场景
猜你喜欢
API 网关 APISIX 在Google Cloud T2A 和 T2D 的性能测试
蓝牙mesh系统开发二 mesh节点开发
BOM系列之history对象
typescript9 - common base types
程序员工作三年攒多少钱合适?
《实战》基于情感词典的文本情感分析与LDA主题分析
WMware Tools installation failed segmentation fault solution
297. 二叉树的序列化与反序列化
ShardingSphere's unsharded table configuration combat (6)
typescript15-(同时指定参数和返回值类型)
随机推荐
typescript17 - function optional parameters
The level of ShardingSphere depots in actual combat (4)
【952. Calculate the maximum component size according to the common factor】
[Yugong Series] July 2022 Go Teaching Course 016-Logical Operators and Other Operators of Operators
Summary of MySQL database interview questions (2022 latest version)
24. Please talk about the advantages and disadvantages of the singleton pattern, precautions, usage scenarios
typescript16-void
孩子的编程启蒙好伙伴,自己动手打造小世界,长毛象教育AI百变编程积木套件上手
Rocky/GNU之Zabbix部署(2)
ShardingSphere之读写分离(八)
基于Keras_bert模型的Bert使用与字词预测
XSS related knowledge
小黑leetcode之旅:104. 二叉树的最大深度
MySQL notes under
Basic usage of async functions and await expressions in ES6
Image processing tool design
不用Swagger,那我用啥?
ShardingSphere's unsharded table configuration combat (6)
Rocky/GNU之Zabbix部署(3)
系统设计.短链系统设计