HCL AppScan Standard扫描有关前端Xss安全报告处理
Posted yu-bobo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HCL AppScan Standard扫描有关前端Xss安全报告处理相关的知识,希望对你有一定的参考价值。
报告问题描述
1.“X-Content-Type-Options”头缺失或不安全
2. “X-XSS-Protection”头缺失或不安全
3. HTTP Strict-Transport-Security 头缺失或不安全
4. “Content-Security-Policy”头缺失或不安全
5. 使用 HTTP 动词篡改的认证旁路
前面四个问题直接在nginx中添加响应头:
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000;includeSubDomains";
add_header Content-Security-Policy "default-src 'self' 'unsafe-eval'; img-src *";
相关解释:
1.X-Frame-Options: 响应头表示是否允许浏览器加载frame等属性,有三个配置DENY禁止任何网页被嵌入,SAMEORIGIN只允许本网站的嵌套,ALLOW-FROM允许指定地址的嵌套;
2.X-Content-Type-Options: 响应头用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为,nosniff表示不允许任何猜测(即关闭浏览器的MIME嗅探功能)。在通常的请求响应中,浏览器会根据Content-Type来分辨响应的类型,但当响应类型未指定或错误指定时,浏览会尝试启用MIME-sniffing来猜测资源的响应类型,这是非常危险的。例如一个.jpg的图片文件被恶意嵌入了可执行的js代码,在开启资源类型猜测的情况下,浏览器将执行嵌入的js代码,可能会有意想不到的后果;
3.Strict-Transport-Security: max-age=31536000;includeSubDomains:指示浏览器只能通过HTTPS访问资源,禁止HTTP的方式访问;
4.X-XSS-Protection: 表示启用XSS过滤(禁用过滤为X-XSS-Protection: 0),mode=block表示若检查到XSS攻击则停止渲染页面;
5.Content-Security-Policy: HTTP 响应头 Content-Security-Policy 允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。
问题5就是没有特指允许哪些请求方式,在一般项目项目中就只有get/post请求,所以在nginx配置中指定一下允许那些请求类型即可
if ($request_method !~ ^(GET|POST)$ )
return 403;
或者
if ($request_method !~* GET|POST)
return 403;
注:这边axios有个跨域探测会使用options方法所以这边放开了
最终修改完nginx配置后重启后响应头信息如下:
参考:
- https://www.cnblogs.com/damoblog/p/16135506.html
- https://blog.csdn.net/u014465934/article/details/84199171
- https://blog.csdn.net/weixin_45894220/article/details/126985628
安全测试扫描利器-Burpsuite
前阵子有学员在尝试使用appscan对公司app做被动式扫描时出现一些问题,发现无法即使导入了appscan的证书也无法抓到https的包。推荐他使用burpsuite后,成功抓到了https的包并且也完成了他的扫描工作。
首先带大家了解什么叫被动扫描。被动扫描和主动扫描是一对,平时你输入一个url让工具进行爬取或扫描的这种扫描方式,叫做主动扫描,所有待扫描的链接全是工具主动爬取所得,那么自然主动扫描的结果其实有一部分取决于工具爬取的能力;与主动扫描不同的是,被动扫描的必要条件是一个代理,可供使用者将客户端的所有流量代理到工具上,被动扫描的结果取决于使用者在使用客户端时产生的流量,也就是发起过的请求,而不取决于工具主动爬取的能力。市面上商用的主动扫描的工具不少,商用的被动扫描器并没有多少,最出名就是burpsuite和appscan。
了解完被动扫描之后,其实只需要做好一点就行,那就是把所有的流量代理到burpsuite即可,那么下一个问题是,如何能够让app所有流量代理过去。
首先,允许设备所在网络能够把流量代理到burpsuite上,那么就要先配置好burpsuite的监听地址。如果情况特殊,无法找到局域网ip,那可以选择all interfaces也可以(主要原因可能是在burpsuite启动后才分配到网卡ip,所以导致代码读取不到ip,不过完全不影响操作)。
配置好burpsuite后,把拦截器关闭,观察HTTP History。
接下来说下android上如何设置,尽量使用root过的真机或是模拟器来进行安全测试。第一步当然是保证网络通畅,将无线网络代理设置成burpsuite监听的地址(我这里是192.168.1.3:8080),
并通过浏览器访问到页面(http://ip:port或者http://burp,后者能生效的原因是因为代理过程中可以劫持所有的dns所以官方绑定了这么一个域名)点击右上角下载证书,修改文件后缀成cer,设置中一些安全选项或其他选项中进行安装证书,接下来就可以抓爆了。
接下来再介绍下如何抓到iOS的包。这里以手头上在用的iOS13.3为例。和Android一样,需要和burpsuite监听地址在同一个局域网内,并且保证网络通畅,设置wifi的代理为burpsuite的监听地址。使用safari打开burpsuite的页面下载证书并点击安装,
点击允许后,回到设置最上面可以看到描述文件,一路点击安装确认即可:
证书在设置-通用-描述文件与设备管理中可以查看,点击进去选择完全信任。接下来就可以试下访问百度,再看burpsuite抓到的是否有iphoneUA的https百度包:
到这就成功的在burpsuite上抓到了设备上所有app的大部分的包,这里不谈论app双向加密,因为会涉及到一部分逆向和脱壳。
这之后,被动扫描的结果就可以看到了。所有可以扫描的漏洞类型都在scanner-issue definition可以看到,不过还是友情提示下,扫描器并不能解决所有问题,世界上暂时没有一款扫描器能够扫描出业务逻辑漏洞,所以尽量还是手动抓包进行渗透测试。
以上是关于HCL AppScan Standard扫描有关前端Xss安全报告处理的主要内容,如果未能解决你的问题,请参考以下文章