upload-labs通关历程
使用靶场前,先配置php版本为5.2,和下列对应配置。

php.ini
magic_quotes_gpc Off
php<5.3.4
httpd.conf
AddType application/x-httpd-php .php .phtml .php1 .php2 .php3 .php4 .php5 .php6 .php8 .php9 .htaccess .phP .Php
Pass1: 前端js过滤拦截,直接一句话木马更改后缀名为jpg,抓包修改包中的一句话木马的后缀为php即可完成绕过并且上传。
Pass2:①源码中可以看出增加了对文件类型的一个判断和传输,上传木马1.php.png,抓包修改后缀名即可。②直接上传php为后缀的木马,抓包修改Content-Type: application/octet-stream为Content-Type: image/gif 或png或jpeg都可以绕过并且上传。
Pass3:根据源码内容可以发现这次的过滤规则采用了黑名单的机制。通过分析源码得知一些危险的脚本解析文件后缀并没有得到过滤。可采用更改后缀名为php1或php2或php3即可绕过并且上传。
Pass4:根据源码内容发现采用了黑名单规则,并且比起pass3,过滤掉的后缀名规则更多更完善,但是它并没有过滤掉.htaccess,可更改webshell文件后缀为htaccess即可绕过并且上传。
Pass5:根据源码发现htaccess后缀名也被设为黑名单。根据源码对应的过滤规则得出payload为.php. .,抓取数据包后在在文件名末尾加上点空点即可进行过滤。
Pass6:根据源码内容发现没有过滤规则为文件名是否为大小写,将webshell文件的后缀名改为大写,即可绕过并且上传。
Pass7:根据源码内容,发现过滤规则并没有对文件名末尾的空格进行过滤,抓取数据包,在webshell文件名末尾加上空格,即可绕过并且上传。
Pass8:根据源码内容,发现过滤规则并没有对文件名末尾的点进行过滤,抓取数据包,在webshell文件名末尾加上点,即可绕过并且上传。
Pass9:根据源码内容,发现过滤规则并没有对::$DATA进行过滤,抓取数据包,在webshell文件名末尾加上::$DATA,即可绕过并且上传。在使用webshell连接工具连接时须要删除::$DATA后才可以正常连接,因为在windows中文件名规则中::$DATA是会被丢弃掉的。具体www.baidu.com。
Pass10:和pass5一样的规律,可以. .方式进行过滤。
Pass11:根据源码内容发现了这次时对关键字的直接替换为空(空值),可通过算双写绕过法,webshell文件名为1.pphphp即可绕过并且上传。
Pass12:通过源码发现该点是利用了白名单的上传法,使用的是get的方法进行对数据的一个传参。并且通过save_path文件进行传参,内容中发现有”/”和$file_ext说明该参数为可控的。可采用%00截断法,通过抓取数据包,更改save_path=../upload/ 为 save_path=../upload/1.php%00,即可绕过并且上传。
Pass13:和pass12一样是使用的是白名单,但是这边采用的是post的传参方式,也一样通过%00截断的方式,但是在这儿要对%00先进行一个编码,抓取到数据包后,,它的传参地方是在下面,和pass12不一样,更改save_path=../upload/ 为 save_path=../upload/1.php%00,选中%00,右击convert selection>url>url_decode,即可绕过并且上传webshell。
Pass14:根据提示说须要文件包含漏洞的方式并且上传.jpg.png.gif三种后缀的webshell才可过关,通过御剑进行对upload-labs进行扫目录,发现一个include.php文件,打开发现该文件用于测试图片马的,通过源码分析得到include.php是以file参数进行传参,更改webshell文件名为图片的后缀名,复制连接得到自动更改的文件名,得到payload 为http://192.168.43.204/upload-labs/include.php?file= 4520201217222329.gif,通过webshell连接工具即可过关。
Pass15:根据源代码发现该过滤规则是检查文件的前两个字节,更改webshell文件的后缀名为gif,在webshell文件中添加GIF89即可绕过并且上传。再利用文件包含即可绕过并且上传。
Pass16:上传文件后发现无法上传,这里直接拉一张图片来做图片马,经过测试图片马可用,上传后发现无法连接到shell,通过源码发现每上传一次图片则都会生成另外一个图片,通过上传webshell,进行对比,发现webshell语句已经没了,尝试正常文件上传一次,将上传成功的图片进行下载下来,制作成图片马再次上传,发现依旧无法,直接用网络中某位大神的脚本。
Pass17:通过源码发现过滤规则是先以move进行判断,符合白名单的就重命名,不符合的就unlinke进行删除,可以利用竞争条件,不断发送php webshell一句话木马,直到成功访问,以webshell连接工具连接成功即可过关。
Pass18:和pass17同样是先move再rename,继续竞争条件但是有白名单,要利用解析漏洞或文件包含,如果文件名简单可以尝试爆破,这里难以爆破文件名。所以利用apache解析漏洞,传1.php.rar 因为rar并不会被解析,可以改为7z。
Pass19:根据源码发现是一个黑名单过滤的方式,抓包,再webshell下面进行更改,可以以大小写、./、. .、::$DATA进行绕过
Pass20:通过源码发现该过滤方式是以explode()函数把字符串打散为数组,end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功),这里是取post参数数组中的最后一个文件名。reset() 函数将内部指针指向数组中的第一个元素并输出。可控点为save_name。save_name[3]=conn19.php,save_name[5]=jpg,$ext=jpg过白名单,
reset($file)=conn19.php $file[1]=nul,就成功上传conn19.php.(多出个点但是windows自动去掉了没影响)。还可以尝试,1=conn19,2=php,3=jpg,或者Pass19的00截断,0=conn19.php(0x00),1=jpg
upload-labs通关历程的更多相关文章
- SUCTF 2019 Upload labs 2 踩坑记录
SUCTF 2019 Upload labs 2 踩坑记录 题目地址 : https://github.com/team-su/SUCTF-2019/tree/master/Web/Upload La ...
- Upload - Labs (下)
Pass - 11: 1.查看源代码,发现进行了一次对后缀名替换成空格,因此考虑双写绕过, 2.上传成功, 关键代码: $is_upload = false; $msg = null; if (iss ...
- Upload - Labs (上)
Pass - 01: 1.尝试上传一个php文件:aaa.php,发现只允许上传某些图片类型,用bp抓包,发现http请求都没通过burp就弹出了不允许上传的提示框,这表明验证点在前端,而不在服务端 ...
- XSS-change通关历程
Level1:没有过滤. <script>alert(1)</script> <svg/onload=alert(1)> <script>confirm ...
- Upload-labs通关指南(上) 1-10
Upload-labs 所有文章和随笔(随笔将不于csdn更新)将于我的个人博客(移动端暂未适配)第一时间更新. 一些网站存在文件上传接口,一旦存在这个接口就有可能存在漏洞. 文件上传漏洞的逻辑是将一 ...
- [web安全原理分析]-文件上传漏洞基础
简介 前端JS过滤绕过 待更新... 文件名过滤绕过 待更新 Content-type过滤绕过 Content-Type用于定义网络文件的类型和网页编码,用来告诉文件接收方以什么形式.什么编码读取这个 ...
- [原题复现+审计][SUCTF 2019] WEB CheckIn(上传绕过、.user.ini)
简介 原题复现:https://github.com/team-su/SUCTF-2019/tree/master/Web/checkIn 考察知识点:上传绕过..user.ini 线上平台:h ...
- buu学习记录(上)
前言:菜鸡误入buu,差点被打吐.不过学到了好多东西. 题目名称: (1)随便注 (2)高明的黑客 (3)CheckIn (4)Hack World (5)SSRF Me (6)piapiapia ( ...
- DVWA File Upload 通关教程
File Upload,即文件上传.文件上传漏洞通常是由于对上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁 ...
随机推荐
- 开始 nx
官网 video 详解Nx, 必读 配置代理 每次创建lib都要重启编辑器 创建项目 选择empty,然后选择Angular CLI 因为可以使用Angular Console λ npm init ...
- Techme INC:红光和近红外光疗法有效加速肌肉恢复,美国橄榄球队已采用
Techme INC创始人兼董事长MADELEINE VAUGHAN表示:在运动结束后,肌肉纤维因为细微损伤造成酸痛情形,即是延迟性肌肉酸痛-DOMS.这类酸痛发生时,需要适度的恢复,避免造成肌肉拉伤 ...
- CNN专访灵石CTO:Baccarat流动性挖矿能否持续?
近日,CNN记者Robert独家专访Baccarat的项目团队CTO STEPHEN LITAN,跟他特别聊了聊DeFi的近况. 以下是专访全文: Robert:推出Baccarat的契机是什么? S ...
- uniapp 滑动切换
说明:本案例的样式基于colorui组件库 感兴趣的小伙伴可以看下教程 colorui组件库开发文档或者csdn的文档,顺便再分享下 colorui的群资源 最近项目中需要用到滑动切换的效果,自己懒得 ...
- 基于element-ui封装一个Table模板组件
大家在做后台管理系统的时候,写的最多的可能就是表格页面了,一般分三部分:搜索功能区.表格内容区和分页器区.一般这些功能都是使用第三方组件库实现,比如说element-ui,或者vuetify.这两个组 ...
- C++入门(1):计算机组成
系列文章尽在 | 公众号:lunvey 学习C++之前,我们有必要了解一下计算机的简单组成,毕竟C++是需要操作内存的一门语言.大家或许知道内存是什么,但是内存怎么读取和操作数据以及数据的表现形式会不 ...
- go mod包管理 加代理下载
原始go.mod文件 module xxx go 1.14 报错 i/o timeout go mod init workorder go mod init: go.mod already exist ...
- 一个 java 文件的执行过程详解
平时我们都使用 idea.eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的? 总体过程 我们编写的 java 文件在由编译器编译后会生成对应的 cla ...
- three.js cannon.js物理引擎之齿轮动画
郭先生今天继续说一说cannon.js物理引擎,并用之前已经学习过的知识实现一个小动画,知识点包括ConvexPolyhedron多边形.Shape几何体.Body刚体.HingeConstraint ...
- 使用jsoup十分钟内掌握爬虫技术
对,就是十分钟,没有接触过爬虫的你,肯定一脸懵逼,感觉好高深的样子,一开始我也有点懵,但用了以后发现还是很简单的,java爬虫框架有很多,让我有种选择困难症,通过权衡比较还是感觉jsoup比较好用些, ...