地址
https://github.com/c0ny1/upload-labs
漏洞
网站代码的问题
中间件/CVE
Tomcat apache glassfish Nginx IIS weblogic 等
解析
1-12关(白名单与黑名单绕过)
13-20关(内容逻辑数组绕过)
不明白可留言或私信,文中只介绍方法,具体操作读者自行完成
burpsuite 抓包,更改内容(都是白名单与黑名单的绕过) 第一关:burp抓包后,更改文件后缀名 第二关:白名单,MIME类型 第三关:特殊解析后缀,以其他格式解析文件,比如PHP5解析PHP 第四关:.htaccess,文件名中,符合代码要求的文件(比如,文件名包含cimer的文件),都将以另一种格式执行(如下代码,都将以PHP格式解析) cimer 可以任意
<FilesMatch "cimer">
Sethandler application/x-httpd-php
</FilesMatch>
第五关:过滤了.htaccess文件,大小写绕过 第六关:后缀名加空格 第七关:后缀名加点,Windows后缀名加点与原文件后缀没有区别,系统将自动去掉 第八关:一次过滤与循环过滤不同,只过滤一次的话,可重复过滤内容,达到绕过情况,比如a.php. .,一次过滤后是a.php.,在Windows中也等于a.php 第十关,a.pphphp 第十一关:白名单,%00截断,是地址方面的,版本PHP5.3以下, 0x00是文件 第十二关,post提交,%00需要编码,但是get不需要,它会自动解码 第十三关:图片马:将后门代码放在图片中,文件包含漏洞:在文件中,包含一个文件,使得源文件格式以后门代码的格式执行 文件的头部信息代表是什么格式的文件,文件头检测 第十四关:获取图像信息,getimagesize():如果不是图片,就没有返回值 第十五关:只能上传图片,配合文件上传漏洞 第十六关:类似 (第13-16,只是验证图片信息所用到的函数不一样,目的是一样的,只能上传图片) 第十七关:二次渲染:存在的漏洞是,验证存在第一步还是第二步, 第十八关:条件竞争 先判断,将文件从本地路径移动到服务器,之后在判断文件格式是否满足要求,此时,文件已被上传到服务器了,之后对文件重命名,系统规则是,当文件被访问时,是不能对其进行修改(比如,编辑文本时,不能删除),同理,不断重复发送上传文件的数据包,在文件已存在的一瞬间,访问该文件,阻止重命名 第十九关:内置函数漏洞,文件目录的问题,burp抓包,修改save_name的值,通过文件名绕过、a.php%00.jpg,通过文件夹名绕过、a.php/. 第二十关:文件上传+数组
|