众元教育H3CSE20200603班-常见WEB漏洞原理及防护手段

众元教育H3CSE20200603班-常见WEB漏洞原理及防护手段

引言:在今天的技术分享前,我先给大家讲解一下什么是漏洞,漏洞是怎么产生的。首先漏洞是指硬件、软件或者策略上存在的安全缺陷,从而使攻击者可以在未经授权的情况下访问、控制系统。漏洞的产生可能是在程序设计时未考虑周全,编程人员技术水平受限导致,也有可能是人为有意留下,为实现不可告人的目的,也有可能是硬件导致。漏洞的类型也有很多,今天我就为大家分享有关web方面的常见漏洞原理及防护手段。

一、上传漏洞

原理:因为文件上传时没有对文件的格式进行校验,导致用户可以上传任意的可执行脚本文件。
如下图上传了一个文件名为QQQ.php.jpg的一句话木马,最后是通过使用中国菜刀成功连接,拿到了web服务器的文件目录
在这里插入图片描述
在这里插入图片描述
防护:
1、设置白名单,对上传文件的格式做严格的过滤
2、在web后端对上传的文件进行过滤
3、将上传文件目录属性设置为不可执行
4、使用随机数改变上传文件的文件名及属性

二、解析漏洞

原理:web应用程序因对http的请求处理不当,导致将一些不可执行文件当做可执行文件进行执行。解析漏洞一般配合着上传漏洞一起使用。如上面上传漏洞所演示的图片,该网站服务软件为apache,Apache服务器将我们上传的不可执行文件QQQ.php.jpg当做可执行文件QQQ.php进行执行。
防护:
1、设置白名单,对白名单以外的文件格式不执行
2、将上传的文件名及路径通过随机数进行修改
3、设置文件上传目录属性为不可执行

三、SQL注入

原理:SQL注入是因为web应用程序没有对用户提供的参数进行合理的校验和过滤,将用户输入的SQL语句进行SQL语句拼接,改变了原有SQL语句的语义,执行了用户恶意的SQL语义。如下图所示,是对网页的手工SQL注入。

在这里插入图片描述
防范:

1、在网站发布前,做SQL注入测试,及时发现并修补漏洞
2、部署SQL注入防御系统
3、对用户的输入进行过滤
4、禁止特殊字符,如单引号、双引号、斜杠、反斜杠、空格符,或者对这些特殊字符进行转义编码

四、XSS

原理:XSS攻击即跨站脚本攻击,因为一个网站的web应用程序对用户的输入过滤不足,导致网页被注入HTML代码或java script脚本。如下图所示
在这里插入图片描述
防范:
1、对输入内容的特殊字符进行编码,如HTML的<>
2、对重要的cookie设置httponly属性,防止页面脚本读取到cookie

五、CSRF

原理:CSRF即跨站点请求伪造,这是一种通过挟持用户在当前登录的页面上,执行非本意的操作的攻击方式。它是通过伪造受信任用户的请求来利用受信任网站。如下图,黑客利用合法用户身份伪造的一个修改密码请求,通过伪造链接的方式诱导用户点击,从而使用户当前页面网站的密码被更改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
防范:
1、第一种方法就是在HTTP中添加验证,通过验证 HTTP Referer 字段来防治。
2、网站发布前,做CSRF漏洞检测,及时修补漏洞

六、命令执行漏洞

原理:服务器对用户输入的命令没有进行有效过滤,使攻击者可以任意执行系统命令。如下图所示
在这里插入图片描述
防范:
1、禁止系统执行外部应用程序或命令
2、对用户的输入进行过滤
3、使用防御代码,explode函数、isnumeric(string)函数等

七、文件包含漏洞

原理:程序开发人员会将可重复执行的函数放在文件中,当要使用函数时,就会调用这个文件,这个过程就叫做包含。文件包含漏洞的形成原因就是当文件引入和调用时,没有对文件名进行严格校验,导致操作了预想之外的文件,从而导致文件泄露或者被注入恶意代码。如下图所示
在这里插入图片描述
防范:
1、设置白名单,仅允许包含白名单内的文件
2、文件引入时,对文件名进行严格的校验和过滤
3、禁止页面跳转字符,如“…/”

八、逻辑漏洞

原理:因为在程序设计时逻辑不严或者逻辑太复杂,导致一些逻辑分支不能真确得处理错误。一般出现在密码修改、交易支付、密码找回、越权访问等。
举例:很多机密性较严格的网页或应用会严格要求用户输入密码的最大错误次数。黑客可以使用被害者的账号故意输错密码,导致被害者的账号被锁定。

今天的分享到此结束,如有对数通、安全有兴趣的朋友可以点点关注,谢谢。