upload-labs通关笔记
第一关:
通过窗口判断为js
解决办法:1.禁用js
2.删除cheakfile函数
第二关:content-type验证
解决办法:抓包content-type修改成image/jpeg
第三关:正常情况,单独安装apache+php+mysql就会PHP所有格式都会解析,但phpstudy为了安全,只解析phtml,
php,而禁止了php3,php4,php2,ptml。(phpstudy中的php版本要设置最低)
解决办法:把后缀改成phtml (注意蚁剑不支持phtml解析,可使用菜刀)
第四关:htaccess解析漏洞
解决办法:htaccess代码 //把带shell的一律解析成php
<FilesMatch "shell"> SetHandler application/x-httpd-php </FilesMatch>
再上传shell.jpg的一句话木马,使用菜刀连接
第五关:大小写绕过
解决办法:文件名后缀.php改成Php
第六关:空格绕过(windows特性 后面所有空格去掉)
解决办法:burpsuit抓包filename后面加空格
第七关:小点绕过(windows特性 后面所有点去掉)
解决办法:burpsuit抓包filename后面加点
第八关:::$DATA(windows特性 按文件流处理)
解决办法:burpsuit抓包filename后面加::$DATA
第九关:点空格点( 先处理最后一个后缀 然后第一个点window特性自动去掉,最后变成php)
解决办法:burpsuit抓包filename后面加点空格点
第十一关:后缀名删除绕过( 把符合后缀名的都自动删除掉)
解决办法:文件名改成shell.pphphp (因为只删除一次)
第十二关:%00绕过( magic_quotes_gpc必须关闭,仅限php5.3之前版本),可以把%00进行url编码
save_path是一个可控变量
解决办法:save_path后面加上shell.php%00,然后filename改成shell.jpg

第十二关:%00绕过( 跟十二关一样操作,只是save_path在post位置)
第十四关:GIF图片马绕过( 把一句话用notepad++插入图片最后一行当中,不能用记事本,因为notepad++有十六进制)
GIF的文件头是GIF89A,ZIP压缩文件文件头PK,7z压缩文件头是7z
解决办法:1.进行文件包含利用/upload-labs/include.php/?file=upload/1720200217120239.gif
用菜刀连接
2.文件头伪造:在shell.php用记事本在开头加入GIF89a,然后命名为shell.gif,再进行文件包含漏洞利用
第十五关:跟十四关实现方法一样
第十六关:源码exif_imagetype函数(phpstudy要在php.ini中开启php_exif把前面分号去掉)
解决办法:1.进行文件包含利用/upload-labs/include.php/?file=upload/1720200217120239.gif
用菜刀连接
2.文件头伪造:在shell.php用记事本在开头加入GIF89a,然后命名为shell.gif,再进行文件包含漏洞利用
第十七关:二次渲染,imagecreatefromipeg重组这个图片,如果在文件末尾PHP代码,就会被重组吃掉,所以放在图片中间或者开头
解决办法:跟十四,十五,十六关一样
第十八关:条件竞争绕过
解决办法:把代码上传burpsuite抓包放到inturder模块进行null payload无限重放,然后用python查看一句话木马是否被创建
<?php $myfile = fopen("shell.php", "w") or die("Unable to open file!"); $txt = '<?php @eval($_POST["cmd"]); echo "I am a muma.";?>'; fwrite($myfile, $txt); fclose($myfile); ?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!