文件上传白名单绕过方法--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的换行字符,具体为换行至下一行行首起始位置。

posted @ 2020-09-18 22:08  LY2333  阅读(3583)  评论(0编辑  收藏  举报