腾讯Wiz课程第三讲,文件上传漏洞的分析

究竟为什么会有文件上传的漏洞呢??

Web应用程序在处理用户上传的文件上传操作的时候。如果上传文件的路径、文件名、扩展名都是用户可控的数据,然后木马脚本就会在web服务器上面搞事情。

其实文件上传本身没有问题。有问题是在文件上传之后,服务器的处理方式、解释文件如果出现了问题,就会导致错误,就是漏洞的来源。

 

 

 

造成恶意文件上传的原因有以下几点:

(1)文件上传时候审查不严。格式有问题,就可以直接搞事情。

(2)文件上传之后修改文件名的时候处理不当。修改文件后缀,然后来搞事情。

(3)使用了第三方插件的引用。引用有上传功能的第三方插件,插件本身可能就有漏洞。

 

文件上传之后的倒置常见安全问题:

(1)上传文件是web脚本语言,然后服务器解释并执行了用户上传的脚本,倒置代码的执行。

(2)上传的文件是flash车裂文件crossdomain.xml(这里还是太菜了不理解),黑客利用flash

  (3)上传的文件是病毒或者木马。

(4)上传文件是钓鱼图片或者包含了脚本的图片,会被执行。

(5)上传文件是WebShell时,攻击者会通过这些网页后门执行命令并控制服务器。

 

 

 

 

什么是WebShell??(发现老师的PDF上面都是抄百度的)

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

 

 WebShell的作用:
一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。
另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚本木马。国内常用的WebShell有海阳ASP木马,Phpspy,c99shell等。
 
WebShell的隐蔽性:
WebShell后门具有隐蔽性,一般有隐藏在正常文件中并修改文件时间达到隐蔽的,还有利用服务器漏洞进行隐藏,如 "..." 目录就可以达到,站长从FTP中找到的是含有“..”的文件夹,而且没有权限删除,还有一些隐藏的WEBSHELL,可以隐藏于正常文件带参数运行脚本后门。
webshell可以穿越服务器防火墙,由于与被控制的服务器或远程过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
 
 

 

 

 

 安全防范:

从根本上解决动态网页脚本的安全问题,要做到防注入、防爆库、防COOKIES欺骗、防跨站攻击(xss)等等,务必配置好服务器FSO权限。最小的权限=最大的安全。防范webshell的最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。防范方法:
1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。
5、要尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
8、要时常备份数据库等重要文件。
9、日常要多维护,并注意空间中是否有来历不明的asp文件。
10、尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。
11、利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。

 

burpsuite的介绍:

Burp 或 Burp Suite 是一个用于测试 Web 应用程序安全性的图形化工具。该工具使用Java编写,由PortSwigger Web Security开发。

 

 

 

burp proxy 的介绍:

 

 

burp proxy抓包方法:

 

 抓包的开关按钮。

首先得将端口进行设置:

 

 需要设置一下代理

 

 

 

 forward分别是放包和丢包的按钮。

 

 

 

 

 

 

 

 

 

 

 这是四个基本选项的基本概念

 

基本的抓包方法我已经掌握了,就不再赘述。

 

课程的后面又是我不太懂的东西了,准备考完试好好学一学

听起来确实云里雾里

 

posted @ 2020-06-15 22:15  Zeker62  阅读(166)  评论(0编辑  收藏  举报