第十一关
尝试上传1.php文件,发现如下提示,为白名单
查看源码
只允许.jpg .png .gif类型的文件
路径拼接
0x00截断:基于一个组合逻辑漏洞造成的,通常存在于构造上传文件路径的时候
test.php(0x00).jpg
test.php%00.jpg
路径/upload/1.php(0x00),文件名1.jpg,结合/upload/1.php(0x00)/1.jpg
php版本小于5.3.4
php的magic_quotes_gpc为OFF状态
修改后重启计算机
filename=1.jpg可以绕过白名单后缀规则,上传进去保存的路径为upload/1.php%00文件名.后缀,%00截断了后面的文件名.后缀,所以此时<?php phpinfo();?>的存储路径为1.php,此时1.php的内容为<?php phpinfo();?>
第十二关
和11关类似,发送方式改为POST,但是post不会对%00进行解码,所以可在burp包里的Hex中将p(十六进制为70)后的数字改为00(即null),从而产生截断。
第十三关
本关要求上传一个图片马
制作图片马
打开图片马,可以看到代码的前几个字节已经乱码
可以尝试给前面多加几个无关紧要的参数
再次生成图片马
上传图片马2.png
想要看到具体效果,可以结合文件包含一起,可以参考下面两种做法:
1、在DVWA的文件包含关打开图片马
2、简单新建一个包含文件漏洞的页面
进行测试
访问http://192.168.168.190/upload-labs-master/upload/2.php?file=5120190911151213.png
第十四关
查看源码
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。
抓个包看一下,类型么有变
测试
第十五关
查看源码
exif_imagetype() 读取一个图像的第一个字节并检查其签名。
本关可以与13、14关相同的方式绕过。