ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

upload-labs文件上传靶场实验

2021-09-15 21:01:48  阅读:205  来源: 互联网

标签:文件 后缀 upload labs 源码 绕过 php 上传 靶场


第一关 前端JS绕过

上传一个含php一句话的jpg文件,然后使用burp抓包
!将然后将1.jpg改成1.php直接发包完成绕过
在这里插入图片描述
然后打开图像链接即完成
在这里插入图片描述

第二关 MIME绕过

本关通过查看源码,仅判断content-type类型,因此上传1.php抓包修改content-type为图片类型:image/jpeg、image/png、image/gif
在这里插入图片描述

在这里插入图片描述
上传成功后直接访问返回的图片路径,即成功
在这里插入图片描述

第三关 特殊解析后缀

查看源码,发现黑名单中只有asp,aspx,php,jsp等后缀的文件
因此我们可以采用特殊后缀名,如php5|.php4|.php3|.html|.htm|.phtml等
在这里插入图片描述
然后直接访问返回的路径
在这里插入图片描述
即可绕过成功
在这里插入图片描述

第四关 .htaccess解析

查看源码,发现黑名单中几乎有所有的特殊后缀除了.htaccess,因此我们可以用.htaccess解析漏洞实现绕过
我们直接上传一个.htaccess文件内容为

<FilesMatch "上传的图片马的文件名">
SetHandler application/x-httpd-php
</FilesMatch>

这样所有文件都会当成php来解析
在这里插入图片描述
然后再访问返回的路径
在这里插入图片描述

第五关 .ini绕过

查看源码可以看到本关存在.ini绕过,前提是目录有readme.php
先上传一个以auto_prepend_file=1.gif为内容的.user.ini文件,然后上传我们的php一句话脚本,叫1.gif,然后上传成功后再访问readme.php就能成功了
在这里插入图片描述

第六关 大小写绕过

查看源码,发现少了检查大小写,因此我们直接上传,然后抓包改成1.phP
即可上传成功
在这里插入图片描述

第七关 空格绕过

检查源码,少了检测后缀空格的函数,因此我们直接抓包加空格实现绕过
在这里插入图片描述

第八关 点绕过

检查源码,少了检测后缀点的函数,因此我们直接抓包加点实现绕过
在这里插入图片描述
在这里插入图片描述

第九关 ::$DATA绕过

少了去除字符串::$DATA的函数,因此我们可以后缀加上去除字符串::$DATA实现绕过
在这里插入图片描述
在这里插入图片描述

第十关 .空格.绕过

码先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用1.php. .(点+空格+点)来绕过
在这里插入图片描述
在这里插入图片描述

第十一关 双后缀名绕过

黑名单过滤,将黑名单里的后缀名替换为空且只替换一次,因此可以用双写后缀名绕过
在这里插入图片描述
在这里插入图片描述

第十二关 %00截断绕过

只能在php版本小于5.3.4下完成,5.3.4及以上已经修复该问题
上传文件,然后使用burp抓包,修改save_path = …/upload/1.php%00即可完成绕过
在这里插入图片描述

第十三关 %00截断绕过

与12关一样,由于是post提交,不会自动转码,因此要将%00进行url编码,然后就能完成绕过
在这里插入图片描述

第十四关 图片马绕过

首先我们要写一个图片马,可以用

copy close.png /b + 1.php /a webshell.jpg

也可以直接打开图片然后写入php代码
然后上传图片,选中图片地址
再点击漏洞,在地址后面拼接上"?file="图片地址,即可绕过
在这里插入图片描述
在这里插入图片描述

第十五关 图片马绕过

与上一关一样,只是检测函数用的是getimagesize()类型验证

在这里插入图片描述

第十六关 图片马绕过

与前两关一样,区别是检测函数用的是exif_imagetype()类型验证

在这里插入图片描述

第十七关 二次渲染

可以参考这篇文章,详细介绍了二次渲染绕过,这关我没成功,具体思路是先上传一个图片,然后查看图片,对比上传前后内容没有改变的地方,然后插入一句话再次上传就可以绕过了,其中上传gif格式最简单。

第十八关 条件竞争

可以参考这篇文章的操作思路,但是我也没有操作成功。
原理是在我们进行文件上传时,服务器先进行文件上传操作,后判断我们上传的文件合不合法,这样我们上传的后门文件只要连接的快,那么服务器就来不及删除它。在我们进行文件读写操作时,也是不能删除该文件的。

第十九关 条件竞争

与前面一关一样的方法。

第二是关 目录命名x.php/.

查看源码,用的是move_upload_file()函数,这个函数会忽略文件末尾的/.
因此,我们将upload-19.jpg使用burp抓包后改成upload-19.php/. 即可成功绕过
在这里插入图片描述
在这里插入图片描述

也可采用00截断绕过

第二十一关 数组拼接后缀名

php修改后缀jpg上传抓包,文件类型已经为image/jpeg
修改上传路径为一个数组,当获取文件后缀时为jpg,合成文件名为数组第一个,和最后一个,当我们修改jpg为数组的2时,1此时是空的数组一共有三位数,但是实际只有两位,所有获取到的值为空,此时上传后的文件为upload-20.php.

在这里插入图片描述

在这里插入图片描述

标签:文件,后缀,upload,labs,源码,绕过,php,上传,靶场
来源: https://blog.csdn.net/chenrs727/article/details/120255884

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有