白名单验证突破
白名单:
只允许上传哪些格式的文件,其余一律不许上传。
MIME绕过
及Content-type,如果对方是只获取MIME的值跟白名单进行比较,那么只需要更改成白名单的任意格式即可
常见的Content-type
id 后缀名 MIME
0 gif image/gif
1 jpg image/jpeg
2 png image/png
3 bmp image/bmp
%00截断绕过白名单限制
漏洞原理:
0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
1.php%00.jpg = 1.php
漏洞利用条件:
php版本必须小于5.3.4 php的magic_quotes_gpc为off的状态
寻找能够截断的点:
对文件名进行截断:
但截断后,又将后缀名更改成了jpg而且把文件名进行更改。说明这种方法不可行,我们换一种方法
通过上传路径进行截断
但注意的一点是get 和 post请求截断之间是有区别的
get:会对%00进行解码
post:并不会对%00进行解码 需要在十六进制手动修改 (20修改为00)