您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

时间:2020-10-14 13:39:46  来源:  作者:

随着互联网技术的飞速发展,业务的开展方式更加灵活,应用系统更加复杂,也因此面临着更多的安全性挑战。安全测试是在应用系统投产发布之前,验证应用系统的安全性并识别潜在安全缺陷的过程,目的是防范安全风险,满足保密性、完整性、可用性等要求。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  日常测试过程中经常遇到开发同事来询问一些常见的配置型漏洞应该如何去修复,为了帮助开发同事快速识别并解决问题,通过总结项目的安全测试工作经验,笔者汇总、分析了应用系统的一些常见配置型漏洞并给出相应的修复建议,在这里给大家进行简单的分享。

  一、Cookie缺少HttpOnly属性

  漏洞描述

  Cookie中的HttpOnly属性值规定了Cookie是否可以通过客户端脚本进行访问,能起到保护Cookie安全的作用,如果在Cookie中没有将HttpOnly属性设置为true,那么攻击者就可以通过程序(JS脚本、Applet等)窃取用户Cookie信息,增加攻击者的跨站脚本攻击威胁。窃取的Cookie中可能包含标识用户的敏感信息,如ASP.NET会话标识等,攻击者借助窃取的Cookie达到伪装用户身份或获取敏感信息的目的,进行跨站脚本攻击等。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  向所有会话Cookie中添加"HttpOnly"属性。

  1)JAVA语言示例:

  HttpServletResponse response2 = (HttpServletResponse)response;

  response2.setHeader( "Set-Cookie", "name=value; HttpOnly");

  2)C#语言示例:

  HttpCookie myCookie = new HttpCookie("myCookie");

  myCookie.HttpOnly = true;

  Response.AppendCookie(myCookie);

  3)VB.NET语言示例:

  Dim myCookie As HttpCookie = new HttpCookie("myCookie")

  myCookie.HttpOnly = True

  Response.AppendCookie(myCookie)

  二、加密会话(SSL)Cookie缺少secure属性

  漏洞描述

  对于敏感业务,如登录、转账、支付等,需要使用HTTPS来保证传输安全性,如果会话Cookie缺少secure属性,Web应用程序通过SSL向服务器端发送不安全的Cookie,可能会导致发送到服务器的Cookie被非HTTPS页面获取,造成用户Cookie信息的泄露。如果启用了secure属性,浏览器将仅在HTTPS请求中向服务端发送cookie内容。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  向所有敏感的Cookie添加"secure"属性。

  1)服务器配置为HTTPS SSL方式;

2)Servlet 3.0环境下对web.xml文件进行如下配置:

<session-config>

     <cookie-config>

     <secure>true</secure>

     </cookie-config>

</session-config>

  3)ASP.NET中对Web.config进行如下配置:

  <httpCookies requireSSL="true" />

php.ini中进行如下配置:

 session.cookie_secure = True

  或者

  void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure= false [, bool $HttpOnly= false ]]]] )

  或者

  bool setcookie ( string $name [, string $value? [, int $expire= 0 [, string $path [, string $domain [, bool $secure= false [, bool $HttpOnly= false ]]]]]] )

在weblogic中进行如下配置:

  <wls:session-descriptor>

   <wls:cookie-secure>true</wls:cookie-secure>

   <wls:cookie-http-only>true</wls:cookie-http-only>

  </wls:session-descriptor>

  三、缺少"Content-Security-Policy"头

  漏洞描述

  因Web应用程序编程或配置不安全,导致HTTP响应缺少"Content-Security-Policy"头,可能产生跨站脚本攻击等隐患,可能会收集有关Web应用程序的敏感信息,如用户名、密码、卡号或敏感文件位置等。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  将服务器配置为使用安全策略的"Content-Security-Policy"头。

在web.config 配置文件中添加如下HTTP响应头:

 <system.webServer>

    <httpProtocol>?

      <customHeaders>

  <add name="Content-Security-Policy" value="default-src 'self';"/>

      </customHeaders>

    </httpProtocol>

  </system.webServer>

使用meta标签:

 <meta http-equiv="Content-Security-Policy" content="default-src 'self'"/>

  四、缺少"X-Content-Type-Options"头

  漏洞描述

  因Web应用程序编程或配置不安全,导致缺少"Content-Security-Policy"头,可能产生偷渡式下载攻击等隐患。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  将服务器配置为使用值为"nosniff"的"X-Content-Type-Options"头。

在web.config 配置文件中添加如下响应头:

  <add name="X-Content-Type-Options" value="nosniff"/>

使用meta标签

  <meta http-equiv="X-Content-Type-Options" content="nosniff" />

  五、缺少"X-XSS-Protection"头

  漏洞描述

  因Web应用程序编程或配置不安全,导致缺少"Content-Security-Policy"头,可能产生跨站脚本攻击等隐患。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  将服务器配置为使用值为"1"(已启用)的"X-XSS-Protection"头。

  1)在web.config 配置文件中添加如下响应头:

 <add name="X-XSS-Protection" value="1;mode=block"/>

使用meta标签

 <meta http-equiv="X-XSS-Protection" content="1;mode=block" />

  六、缺少"HTTP Strict-Transport-Security"头

  漏洞描述

  因Web应用程序编程或配置不安全,导致缺少 HTTP Strict-Transport-Security 头。为了用户体验,有些网站允许使用HTTPS和HTTP访问,当用户使用HTTP访问时,网站会返回给用户一个302重定向到HTTPS地址,后续访问都使用HTTPS协议传输,但这个302重定向地址可能会被劫持篡改,被改成一个恶意的或者钓鱼HTTPS站点,导致敏感信息如用户名、密码、卡号或敏感文件位置泄露等风险。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  通过向 web 应用程序响应添加"Strict-Transport-Security"响应头来实施 HTTP 严格传输安全策略,或实施具有足够长"max-age"的 HTTP Strict-Transport-Security 策略,强制客户端(如浏览器)使用HTTPS与服务器创建连接。

  七、容易出现点击劫持(Clickjacking)

  漏洞描述

  页面未能设置适当的X-Frame-Options或Content-Security-Policy HTTP头,则攻击者控制的页面可能将其加载到iframe中,导致点击劫持攻击,此类攻击属于一种视觉欺骗手段,主要实现方式有两种:一是攻击者将一个透明的iframe覆盖在一个网页上,诱使用户在该页面上进行操作,那么用户就在不知情的情况下点击透明的iframe页面;二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  应用程序应该返回名称为X-Frame-Options、值DENY以完全防止成帧的响应头,或者返回值SAMEORIGIN以允许仅通过与响应本身相同的来源上的页进行成帧,或者通过ALLOW-FROM origin设置白名单来限制允许加载的页面地址。

  1)修改中间件配置:

  a)IIS:

web.config 配置文件中添加如下响应头:

 <add name="X-Frame-Options" value="SAMEORIGIN"/>

  b)Apache

  Header always append X-Frame-Options SAMEORIGIN

  c)Nginx

  add_header X-Frame-Options SAMEORIGIN;

使用meta标签

 <meta http-equiv="X-Frame-Options" content="SAMEORIGIN" />

  八、启用了不安全的HTTP方法

  漏洞描述

  Web服务器或应用服务器以不安全的方式进行配置,导致启用了WebDAV和不安全的HTTP方法,不安全的HTTP方法一般包括:TRACE、PUT、DELETE、COPY等,可能会造成攻击者在Web服务器上上传、修改或删除Web页面、脚本和文件的隐患。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  禁用WebDAV。禁止不需要的HTTP方法(建议只使用GET和POST方法)。

  1)Apache:

使用Apache的重写规则来禁用Options方法和Trace方法。在Apache配置文件httpd-conf中【vhosts-conf】添加以下代码:

  #单独禁用Trace方法:

  RewriteEngine On

  RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)

  RewriteRule .* - [F]

  单独禁用Options方法:

  RewriteEngine On

  RewriteCond %{REQUEST_METHOD} ^(OPTIONS)

  RewriteRule .* - [F]

  同时禁用Trace方法和Options方法:

  RewriteEngine On

  RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)

  RewriteRule .* - [F]<VirtualHost *:80>

   DocumentRoot "D:wwwroot"

   ServerName www.abc.com

   ServerAlias abc.com

   <Directory "D:wwwroot">

   Options FollowSymLinks ExecCGI

   AllowOverride All

   Order allow,deny

   Allow from all

   Require all granted

   RewriteEngine on

   RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)

   RewriteRule .* - [F]

   </Directory></VirtualHost>

  2)Nginx:

在server段里加入下面代码:

 if ($request_method !~* GET|POST) {

   return 403;

   }

  重启Nginx,就可以屏蔽GET、POST之外的HTTP方法。

  3)Tomcat

修改web.xml配置文件。

  <security-constraint>

   <web-resource-collection>

   <url-pattern>/*</url-pattern>

   <http-method>PUT</http-method>

   <http-method>DELETE</http-method>

   <http-method>HEAD</http-method>

   <http-method>OPTIONS</http-method>

   <http-method>TRACE</http-method>

   </web-resource-collection>

   <auth-constraint>

   </auth-constraint>

  </security-constraint>

  4)IIS:

  a)禁用WebDAV功能;

  b)在web.config的【configuration】下添加如下代码:

  <system.webServer> <security> <requestFiltering>

  <verbs allowUnlisted="false">

  <add verb="GET" allowed="true"/>

  <add verb="POST" allowed="true"/>

  </verbs>

  </requestFiltering> </security></system.webServer>

  九、"X-Powered-By"字段泄露服务器信息

  漏洞描述

  因Web服务器、应用服务器配置不安全,导致响应报文的响应头中"X-Powered-By"字段泄露服务器信息,攻击者可以通过获取服务器版本信息,收集相关漏洞,进行特定的攻击。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

  隐藏响应头中"X-Powered-By"字段。

  1)IIS:

修改web.config配置文件。

  <configuration>

   <location>

   <system.webServer>

   <httpProtocol>

   <customHeaders>

   <remove name="X-Powered-By" />

   </customHeaders>

   </httpProtocol>

   </system.webServer>

   </location>

  </configuration>

  2)Nginx:

需要加上proxy_hide_header。

  location / {

   proxy_hide_header X-Powered-By;

  }

  3)WAS:

  修改websphere相应配置,将com.ibm.ws.webcontainer.disabledxPoweredBy配置更改为true。

  十、"Server"字段泄露服务器信息

  漏洞描述

  因Web服务器、应用服务器配置不安全,导致响应报文的响应头中"Server"字段泄露服务器信息,攻击者可以通过获取服务器版本信息,收集相关漏洞,进行特定的攻击。

这些bug你遇到过几个?盘点10个常见安全测试漏洞及修复建议

 

  修复建议

隐藏HTTP响应头中"Server"字段,在web.config添加以下配置:

<system.webServer>

  <modules>

  <add name="CustomHeaderModule" type="StrongNamespace.HttpModules.CustomHeaderModule" />

  以上就是笔者在实际项目测试过程中经常遇见的十类常见应用配置型漏洞描述及针对常见中间件的修复建议,希望能够帮助开发同事快速理解各类漏洞并找到对应的修复方式!



Tags:安全测试漏洞   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
随着互联网技术的飞速发展,业务的开展方式更加灵活,应用系统更加复杂,也因此面临着更多的安全性挑战。安全测试是在应用系统投产发布之前,验证应用系统的安全性并识别潜在安全缺...【详细内容】
2020-10-14  Tags: 安全测试漏洞  点击:(383)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(19)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(18)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross&mdash;Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(631)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条