第11关
双写文件后缀绕过
看代码,大概是当碰到黑名单里的后缀时会把该后缀自动转换为空。例如你上传5.php文件,因为php在黑名单里,所以最后上传的文件是个5.没有了php。当你传5pphphp时,检测是相邻的字母,pphp后三个在黑名单里所以php会被转为空,再接上后面的hp时又组成了php(至于这个php为什么不会被转为空则是因为只会检测一遍没有复查)
第十二关
前提是GET请求从URL中获得路径(如果抓包代码第一行有save_path可以试试此方法)
%00截断。%00后面的会被类似于注释一样,被省略
举个例子,当你访问web%00.php时实际访问的是web而不是web.php
我没传上去我版本太高,好像是老版本猜可以
第十三关
也是环境问题没有成功
第十四关
以png为例
首先找一个可以编辑十六进制的编辑器,这里以vs code为例,在扩展里安装hex editor。
写一个一句话木马,不过空出两个位置也可以用占位符
一句话木马写好以后,在vs code中使用hex editor编辑刚刚的文件
这个图片是不同图片的字节字节标识符
我们要上传png格式因此对照上一张图将占位符也就是头两个改为89和50
这里我准备两个一句话木马,唯一的区别就是一个改了图片字节标识符一个没改,没改标识符的尽管将后缀改为png也无法上传,改了标识符的即使后缀不是png仍然可以上传,这是因为本关依靠字节标识符判断图片的格式
点击注意二中黄色字体会跳转到新链接中
这里的1是上传文件名,我们是无法直接访问的要在此页面输入?file=./upload/文件名。其中./upload意思是访问upload目录下的文件我们要利用写的一句话木马就要访问它只需后接文件名即可。
连接成功
第十五关
图片码
准备一个图片和一个php文件在当前目录的地址栏里输入cmd
我 的右键终端不能合成图片码一直报找不到路径合成图片码
可以右键打开看到自己的一句话木马
之后就直接上传然后用与第十四关相同的访问方法即可。但是我没有访问成功,问了一下好像是有的图片里的字符无法解析。
找了一张可以的图片试了一下没问题