DVWA-csp Bypass

CSP简介:

  CSP全称是: Content-Security-Policy, 内容安全策略。
  是指HTTP返回报文头中的标签,浏览器会根据标签中的内容,判断哪些资源可以加载或执行。
  主要是为了缓解潜在的跨站脚本问题(XSS),浏览器的扩展程序系统引入了内容安全策略这个概念。原来应对XSS攻时,主要采用函数过滤转义输入中的特殊字符、标签、文本来规避攻击。CSP的实质就是白名单制度,开发人员明确告诉客户端,哪些外部资源可以加载和执行。开发者只需要提供配置,实现和执行全部由浏览器完成。

简单版:

  1.查看源代码:

DVWA-csp Bypass

通过对http头中定义了CSP定义了CSP 标签,‘self’指可以访问的网址,网址白名单及 https://pastebin.com ,访问后发现为文本编辑网址,我们可以在该网址编辑xss脚本,然后包含该网址实现XSS

  2.进入网站https://pastebin.com:输入alert(1)以raw形式显示,并记录网址

DVWA-csp Bypass
在输入框中输入刚刚的url,成功执行

在pastebin上保存的js代码被执行了。那就是因为pastebin网站是被信任的。攻击者可以把恶意代码保存在收信任的网站上,然后把链接发送给用户点击,实现注入。

中等版:

  1.分析源代码:

DVWA-csp Bypass
2.构造一个标签,输入

<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert('qisheng')</script>

DVWA-csp Bypass

高等版:

  1.分析源代码:

DVWA-csp Bypass
2.题目提示:
DVWA-csp Bypass
3.利用callback参数,Post

<script src="source/jsonp.php?callback=alert('1');"></script>
  4.查看jsonp.php的代码
<?php
header("Content-Type: application/json; charset=UTF-8");

if (array_key_exists ("callback", $_GET)) {
	$callback = $_GET['callback'];
} else {
	return "";
}

$outp = array ("answer" => "15");

echo $callback . "(".json_encode($outp).")";
?>

  5.参数以get方式获取,没有做过滤
include=<script src="source/jsonp.php?callback=alert('hacked');"></script>

DVWA-csp Bypass

上一篇:dvwa-sql注入


下一篇:DVWA通关--弱会话ID(Weak Session IDs)