Web安全——文件上传漏洞原理讲解

Web应用程序在处理用户上传的文件操作时,如果用户上传文件的路径、文件名、扩展名成为用户可控数据,就会导致直接上传脚本木马到web服务器上,直接控制web服务器。

上传——>访问——>解析——>防护

文件上传功能本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

01 造成恶意文件上传的原因

(1)文件上传时检查不严

比如应用在文件上传时根本没有进行文件格式检查,导致攻击者可以直接上传恶意文件或应用仅仅在客户端进行了检查,而在专业的攻击者眼里几乎所有的客户端检查都等于没有检查,攻击者可以通过NC,Fiddler等断点上传工具轻松绕过客户端的检查。

(2)文件上传后修改文件名时处理不当

一些应用在服务器端进行了完整的黑名单和白名单过滤,在修改已上传文件文件名时却百密一疏,允许用户修改文件后缀。

如应用只能上传.doc文件时攻击者可以先将.php文件后缀修改为.doc,成功上传后在修改文件名时将后缀改回.php。

(3)使用第三方插件引用时

好多应用都引用了带有文件上传功能的第三方插件,这些插件的文件上传功能实现上可能有漏洞,攻击者可通过这些漏洞进行文件上传攻击。

如著名的博客平台WordPress就有丰富的插件,而这些插件中每年都会被挖掘出大量的文件上传漏洞。

02 文件上传后导致的常见安全问题

  1. 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
  2. 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类似方式控制策略文件的情况类似);
  3. 上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
  4. 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。
  5. 上传文件是WebShell时,攻击者可通过这些网页后门执行命令并控制服务器。

03 文件上传漏洞常见的地方

  1. 服务器配置不当
  2. 开源编辑器的上传漏洞
  3. 本地文件上传限制被绕过
  4. 过滤不严或被绕过
  5. 文件解析漏洞导致文件执行
  6. 文件路径截断

任何可以上传文件的地方,都可能存在文件上传漏洞

04 webshell

是什么:
Webshell 就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。拆分开来看,“web”的含义显然是服务器开放的web服务,“shell”的含义是取得对服务器某种程度上操作权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

作用:
一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。
另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚本木马。

特性:
WebShell后门具有隐蔽性,一般有隐藏在正常文件中并修改文件时间达到隐蔽的,还有利用服务器漏洞进行隐藏,还有一些隐藏的WEBSHELL,可以隐藏于正常文件带参数运行脚本后门。
webshell可以穿越服务器防火墙,由于是与被控制的服务器或远程80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。

05 HTTP头

  1. Host(请求的web服务器域名地址) — — 你找的是谁?Host: www.sina.com.cn

  2. User-Agent (客户端运行的浏览器类型的详细信息)— — 你用的什么浏览器? User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0

  3. Accept (浏览器可接受的数据类型)— — 你能看得懂啥?
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

  4. Referer(用户从该URL代表的页面出发访问当前请求的页面) — — 你从哪来?

06 相关工具

BurpSuite的核心功能:拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,修改,重放在两个方向上的原始数据流。
Web安全——文件上传漏洞原理讲解_第1张图片
大马:指木马病毒。
php大马:php写的提取站点权限的程序,带有提权或者修改站点功能。
PHP一句话木马:
asp&&aspx一句话木马:<%eval request("caidao")%>;<%@ Page Language="Jscript"%>;<%eval(Request.Item["caidao"],"unsafe");%>

中国菜刀是一款专业的网站管理软件,用途广泛,使用方便,小巧实用。只要支持动态脚本的网站,都可以用中国菜刀来 进行管理!

中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。

冰蝎动态二进制加密网站管理客户端

你可能感兴趣的:(web安全,web,安全)