配置环境后打开
Pass-01 前端的js校验
方法一 删除前端的js检验方法
1.先创建一个php一句话木马 1.php
2.上传木马不可通过,且根本没有缓冲时间,判断为前端语句的拦截
3.将前端js语句修改
4.再次上传,上传成功
5.将文件链接复制下来,运用蚁剑进行连接
方法二 上传图片后缀(jpg png)的木马抓包修改后缀名为php
将1.php后缀名修改为png,上传并用爆破进行抓包
将png修改为php,并放行
后续操作如上,用蚁剑进行连接
Pass-02 文件类型校验
方法1 上传图片修改后缀名
上传后缀名为jpg png的php文件,运用bp进行抓包
修改png后缀名为php,并且放行
浏览器访问该图片
方法2 上传php修改文件类型
修改文件类型为imag/png,放行
新链接打开图片
Pass-03 黑名单绕过
上传php文件
将图片上的后缀文件拉入了黑名单,尝试用别的,如php3 php5等
上传成功,新链接打开图片
Pass-04 .htaccess绕过
新建一个.htaccess文件
内容为:<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>
如果文件里面有一个后缀为.png的文件,他就会被解析成.php
先上传这个.htaccess,然后上传一个1.png文件,再访问1.png
Pass-05 大小写绕过
这一关没有对大小写进行限制
上传一个文件2.Php,新链接打开图片
Pass-06 空格绕过
文件名末尾添加空格,由于windows命名规范不允许文件名末尾出现空格,所有我们上传1.php空格的话,上传成功以后空格会被windows电脑自动删除,只留下1.php。
上传1.php文件,运用bp进行抓包
在1.php后面加空格,放行并且在新链接打开1.php
Pass-07 文件后缀点绕过
上传1.php文件,运用bp进行抓包
在1.php后面加点,放行并且在新链接打开1.php
Pass-08 ::$data windows特性文件流绕过
在windows识别文件的时候,会把::$data当做文件流文件去识别,当我们上传1.php::$data的时候,最后的::$data是识别文件的符号,而不是后缀名,所以最终成功上传的文件名1.php。
上传1.php文件,bp进行抓包,在1.php后面添加::$DATA
放行并访问
最后的::$data是识别文件的符号,而不是后缀名,所以最终成功上传的文件名1.php
Pass-09 构造后缀绕过 点空格点绕过
除文件名末尾的点,剩下点空格,收尾去空,剩下点。最终上传的木马名字是木马.php点,由于文件名末尾的点不符合windows的命名规范,所以上传成功以后只剩下木马.php。
上传1.php,bp抓包,在后面添加点空格点
上传成功,访问
Pass-10 双写后缀绕过
遇到php会删除,那么双写,pphphp后缀。删除第234个字母php,前面的p和后面的hp重新组合成了php。
上传1.pphphp文件并访问
Pass-11 %00截断(GET)
上传1.png文件
添加%00,放行并访问
直接在保存的文件名后面加%00,起到截断作用,后面的文件名和我们没关系。
Pass-12 %00截断(POST)
上传文件并进行bp抓包
直接在保存的文件名后面加%00,起到截断作用,后面的文件名和我们没关系。不同于上一关的是post的%00需要url解码。
放行并访问
Pass-13 图片马
图片马不能单独用,需要和文件包含漏洞组合用。用文件包含漏洞把图片马包含到页面上执行。
上传1.png文件
新建一个1.png文件,在第一行添加.gif的开头:GIF89a
上传成功,在新标签页打开图像,发现后缀变为.gif
此时需要搭配文件包含漏洞使用
访问 include.php,在后面跟上参数和路径就能访问我们的图片马
Pass-14 图片马
同13关一样操作即可
Pass-15 图片马
同13,14关一样操作
Pass-16 二次渲染
本关需要二次渲染专用图
图片代码
上传图片文件
上传成功后即可直接连接
Pass-17 条件竞争
上传的符合它的白名单,那就进行重命名,如果不符合,直接删除!解析的机会都没有,这让我想到了条件竞争,如果我在它删除之前就访问这个文件,他就不会删除了
新建1个17.php文件
内容为:<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
上传17.php进行抓包,发送到intruder进行不断攻击
然后用浏览器一直访问17.php,按F5一直刷新,如果在上传的瞬间访问到了,会生成webshell.php它就无法删除
Pass-18 条件竞争
18关和第17关的差距是,这关还检测了后缀名,不能直接上传php文件,所以这关要上传图片马,其他步骤和17关类似。访问图片时使用文件包含我们上传图片马 3.png,使用bp抓包,发送到攻击模块,和17关一样的操作,开始攻击
然后用浏览器一直访问22.gif,按F5一直刷新,如果在上传的瞬间访问到了,它就无法删除
Pass-19 /.绕过
19关的页面,多了一个保存名称,没有对上传的文件做判断,只对用户输入的文件名做判断
move_uploaded_file()截断
一个函数,它有一个特性,会忽略到文件末尾的/.
直接上传2.Php,保存名称为2.php/.
上传成功直接访问