Java webwindows运维

文件上传漏洞小结

2019-11-13  本文已影响0人  nohands_noob

 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等后缀名

上一篇 下一篇

猜你喜欢

热点阅读