XSS Auditor和CSP相关学习

0x00 前言

今天在学习DVWA时,了解到了CSP这个内容,联想起刚刚在接触web安全的时候,chrome无法执行xss的情况,这里做一个简单的学习记录。


0x01 XSS Auditor

在很久之前我记得在chrome中做xss时,会有这样的一个提示。
XSS Auditor和CSP相关学习_第1张图片
原来都是通过下面的方法进行关闭的。

在使用浏览器进行xss测试时需要预先关闭xss过滤器

chrome的关闭方法:

我的chrome安装目录在C:\Program Files
(x86)\Google\Chrome\Application\chrome.exe,关闭方法是在命令行输入以下命令:

“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --args
–disable-xss-auditor

我的做法是复制上面一行,在桌面新建一个快捷方式,然后把上面一行的代码黏贴到“请键入对象的位置那里”,此处需要注意的是双引号以及双引号内的内容应该为你本身机子内的chrome的安装地址。这样就会在桌面新建一个你关掉了xss过滤器后的新的chrome的快捷方式。

ie和firefox的关闭方法在如下链接:
http://www.phillips321.co.uk/2012/03/01/xss-browser-filters-disabling-it-for-app-testing/

目前来说,已经不需要去关闭了,分别 在xp,win7,win10都测试过了,都可以成功执行xss
XSS Auditor和CSP相关学习_第2张图片
原因是XSS Auditorchrome也带了一些其他的漏洞,而且还有误报,所以google准备删除XSS Auditor了,启用CSP之类的新标准。当然还是简单记录下XSS Auditor的实现原理。

chrome的xss检测名称为 xssAuditor  整合到webkit当中,chrome这么做的原因是因为过滤器可以在脚本执行之前就可以拦截,而且任何使用webkit都可以使用这些规则

当加载网页时,xssAuditor会在渲染的之前评估用户的输入数据:

1.检查用户输入是否包含恶意内容,如果存在进行拦截

2.xssAuditor检测用户是否会反射到渲染的页面中(html实体/html熟悉/javascript/css/url)

3.评估输入上下文是否合法,非法进行过滤

同时还了解到了ie浏览器的xssFilter

IE的xssFilter是在IE8 beta2开始的,IE的xss检测比较粗暴,IE的xssFilter基于正则进行检测的
具体规则存在位于C:\Windows\System32下的mshtml.dll文件中
我们可以使用如下命令进行查看:
findstr /C:"sc{r}" C:\WINDOWS\SYSTEM32\mshtml.dll|find "{"

XSS Auditor和CSP相关学习_第3张图片


0x02 CSP

简介

重点还是得来了解这个CSPCSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

版本

当前,CSP还处在快速的发展期,目前正在进行规范中的版本是CSP3CSP标准由用户代理选择实现。例如,Chromium具有完整的CSP2支持,并且实现了CSP3的大部分工作草案,仅在某些情况下可能会落后于实验中的某些特性,而MozillaFirefox和基于WebKit的浏览器则刚刚获得了完整的CSP2支持。
XSS Auditor和CSP相关学习_第4张图片
还有上图中这种x-*号的也不推荐去使用了,目前CSP LEVEL1已经被大部分浏览器所支持。
XSS Auditor和CSP相关学习_第5张图片
CSP LEVEL1 涉及到的指令有:
default-src、script-src、style-src、img-src、connect-src、font-src、object-src、media-src、sandbox、report-uri
CSP LEVEL2加了一些新的指令:
child-src、form-action、frame-ancestors、plugin-types。对于现在的移动端开发来说,CSP LEVEL2已经完全可以使用了。
XSS Auditor和CSP相关学习_第6张图片

CSP指令

CSP level1CSP level2共列举了15个指令,其中frame-src是被废弃的指令,但是浏览器还仍支持。`
XSS Auditor和CSP相关学习_第7张图片

CSP指令的取值

XSS Auditor和CSP相关学习_第8张图片

实现

在实际使用中,CSP策略在Content-Security-Policy HTTP响应头或元素中提供。

//响应头
Content-Security-Policy: script-src 'self'; object-src 'none';
style-src cdn.example.org third-party.org; child-src https:

//meta标签
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">

上面代码中,CSP 做了如下配置,启用后,不符合 CSP 的外部资源就会被阻止加载。

脚本:只信任当前域名
标签:不信任任何URL,即不加载任何资源
样式表:只信任cdn.example.org和third-party.org
框架(frame):必须使用HTTPS协议加载
其他资源:没有限制
 
  

0x03 相关链接

通过学习,目前掌握了一部分内容,其余的内容通过以后的学习可以更加了解CSP

https://content-security-policy.com/
http://www.ruanyifeng.com/blog/2016/09/csp.html
https://blog.csdn.net/zhouxingxingzxy/article/details/50802908
https://lorexxar.cn/2016/08/08/ccsp/
https://www.cnblogs.com/lmh2072005/p/6044542.html

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