来自图中这几个网站就属于白名单,也就是说只有这几个网站的资源可以被加载 。
-src 'self’代表着只能加载符合同源策略的文件,直接插入至 html 页面中的静态标签将无法执行 。
其实在源码里DVWA有给我们提供一个用于测试的文件
就是这个,我们可以访问一下
现在假设这个文件就是我们自己写的,因为他的原地址是白名单里面包含的,所以按道理说我们引入这个文件页面应该会有弹窗输出,只要能弹出,我们就可像XSS一样拿到,我们尝试一下复制这个网址,加载一下
发现并没有弹窗,而且网站会有报错,说我们上传的文件类型不符
这个其实靶场后期做的一个设置,text文件类型并不匹配,那我们就按照自己的方法做,重要的是一定要设置文件类型
打开
文件类型一定要设置成JS文件,这样才不会出现上面的报错
一下,下载好的文件其实就可以引用
出现弹窗,搞定
中级
查看源码
Whatever you enter here gets dropped directly into the page, see if you can get an alert box to pop up.
';
在允许-的情况下,内嵌都可以执行,当然可以直接执行本页面的JS,如输入即可
首先,代码通过设置$变量定义了一个内容安全策略的头部 。通过"-src ‘self’ ‘-’ ‘nonce-=’"指令设置 nonce ,其目的是为了提供额外的安全性,确保只有具有相应 nonce 的脚本能够被执行 。这样可以防止未经授权的脚本注入攻击 。
然后使用($);将该内容安全策略头部应用于响应头 。
接下来,通过(“X-XSS-: 0”);这行代码,禁用了浏览器的跨站脚本攻击(XSS)防护机制,以便内联的弹窗警告框能够正常工作 。
接下来的代码段是一个表单,允许用户输入内容,并将该内容直接输出到页面中 。用户可以在文本框中输入任意内容,这些内容将被添加到页面的主体部分 。
-:允许使用内联资源,如内联
nonce-:仅允许特定的内联脚本块
nonce=“=”
总而言之就是我们加载的东西不仅要是固定网址里的还要携带特定标签 。
这个时候我们可以直接引入特定的源码:
既是内联资源,又带有标签
文章插图
高级
这里的源码包括两部分
The page makes a call to ' . DVWA_WEB_PAGE_TO_ROOT . '/vulnerabilities/csp/source/jsonp.php to load some code. Modify that page to run your own code.
1+2+3+4+5=
';
function clickButton() {var s = document.createElement("script");s.src = "http://www.kingceram.com/post/source/jsonp.php?callback=solveSum";document.body.appendChild(s);}function solveSum(obj) {if ("answer" in obj) {document.getElementById("answer").innerHTML = obj['answer'];}}var solve_button = document.getElementById ("solve");if (solve_button) {solve_button.addEventListener("click", function() {clickButton();});}
- 手摸手学会node框架之一——koa 傻瓜式小白教程
- 数据分析师之可视化工具推荐指南
- 十三 每天学习一个设计模式:行为型之责任链模式
- JVM之垃圾回收-垃圾收集器
- 微软不甘示弱,继苹果之后也采用视网膜显示屏
- 读书 | 设计模式之禅 - 责任链模式
- 斯巴达 Kail学习笔记-kali信息搜集工具之Sparta
- 在Ubuntu18.04使用搜狗输入法
- STA和MTA 之 COM和套间
- uboot启动第二阶段分析