| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【网络安全】文件上传靶场通关(1-11关) -> 正文阅读 |
|
[网络协议]【网络安全】文件上传靶场通关(1-11关) |
目录 后续持续更新 一、简介本次实验利用靶场为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关卡,下一篇继续分享 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:26:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |