美文网首页Java webwindows运维
文件上传漏洞小结

文件上传漏洞小结

作者: nohands_noob | 来源:发表于2019-11-13 16:40 被阅读0次

     web上传文件功能非常常见,但如果对上传的文件没有做安全过滤,黑客可能会利用上传功能上传恶意文件并执行,如:webshell等,这就导致了系统被入侵等危害

    一般的文件上传检测方法:

     1、前端提交:JavaScript检测、Flash AS检测
     2、数据传输:WAF拦截、IPS拦截
     3、后端处理:扩展名检测,MIME Type检测、文件格式检测、内容检测
     4、写入文件:文件重命名、杀软查杀
     5、访问文件:无执行权限、未知位置

    一个上传的数据包的内容:


    客户端检测绕过:

     修改客户端代码,浏览器f12功能可以修改前端代码
     js检测,浏览器可以禁用js或者在f12的控制台中修改js函数
     提交允许的文件名后,在burp拦截,再修改文件名

    服务器检测绕过:

     MIME TYPE可以标记文件的类型
     如果服务器只是对MIME TYPE进行了检测:
      那么上传恶意文件,对MIME TYPE进行修改即可
      一些常见的MIME TYPE白名单:

    扩展名 MIME TYPE
    jpg image/jpeg
    png image/png
    txt text/plain
    zip application/zip
    doc application/msword
    文件头检测绕过:

     如果服务器对文件内容的文件头进行检测,可以添加文件头绕过
     一些图片的文件头:

    扩展名 文件头
    jpg FFD8FF
    png 89504E47
    gif 47494638
    tif 49492A00
    bmp 424D
     用16进制工具HexPad打开一张png图片,会在开头看到png的文件头
     那么用该工具打开一句话木马,添加文件头即可
    完整文件结构检测

      如果服务端检测完整的图片,可以尝试合并文件绕过
      windows下合并文件命令:copy /b 1.jpg+shell.php a.php先图片后代码

      
      合成结果
      有的服务器检测可能检测到完整的图片后,就会将图片后面的内容清除掉,这种情况可以尝试在图片中间写入webshell,因为服务器很可能是检测文件尾来判断一个图片完整性
    恶意文件内容检测

     服务器通过检测上传内容是否有webshell等代码
     通常的绕过方法是代买混淆,一句话木马变种
     一句话免杀/变种参考:https://www.freebuf.com/articles/web/195304.html

    其他

     一些服务器可能用了黑名单机制限制了php的后缀名,但是在一些php版本中php3,php5等后缀名是可以解析成php代码的,因此可以尝试上传pht,phpt,phtml,php3,php4,php5,php6等后缀名

    相关文章

      网友评论

        本文标题:文件上传漏洞小结

        本文链接:https://www.haomeiwen.com/subject/qzvqictx.html