文件上传白名单绕过方法--mine类型修改与00截断
常见的MIME类型
1)超文本标记语言.html文件的MIME类型为:text/html
2)普通文本.txt文件的MIME类型为:text/plain
3)PDF文档.pdf的MIME类型为:application/pdf
4)MicrosoftWord文件.word的MIME类型为:application/msword
5)PNG图像.png的MIME类型为:image/png
6)GIF图像.gif的MIME类型为:image/gif
7)MPEG文件.mpg、.mpeg的MIME类型为:video/mpeg
8)AVI文件.avi的MIME类型为:video/x-msvideo
00截断
1) 0x00截断
0x00是十六进制表示方法,表示ASCII码为0的字符,在一些函数处理时,会把这个字符当作结束符。
0x00可以用在对文件名的绕过上,具体原理:系统在对文件名进行读取时,如果遇到0x00,就会认为读取已经结束。但要注意是文件的十六进制内容里的00,而不是文件名中的00。也就是说系统是按二进制或十六进制读取文件,遇到ASCII码为0的位置就停止,而这个ASCII码为0的位置在十六进制中是00。
总之就是利用ASCII码为0这个特殊字符,让系统认为字符串已经结束。
2) %00截断
url发送到服务器后被服务器解码,这时还没有传到验证函数,也就是说验证函数里接收到的不是%00字符,而是%00解码后的内容,即解码成了0x00。总之就是%00被服务器解码为0x00发挥了截断作用。
3) 0x0a
0x0a是十六进制表示方法,表示ASCII码为/n的换行字符,具体为换行至下一行行首起始位置。