网络安全学习篇47_第四阶段_XSS漏洞
发布日期:2021-05-07 20:39:08 浏览次数:26 分类:原创文章

本文共 1924 字,大约阅读时间需要 6 分钟。

上一篇博客:


目录

  • XSS漏洞概述

    • 简介
    • XSS危害
    • XSS漏洞验证
  • XSS的分类

    • 反射型XSS
    • 存储型XSS
    • DOM型的XSS
  • XSS的构造触发

    • 利用【<>】构造HTML、JS
    • 伪协议
    • 产生自己的事件
    • 利用CSS跨站
    • 利用其他标签及手法
  • XSS变形

开始


一、XSS漏洞概述

XSS 跨站脚本攻击(Cross-site-scripting)

本来应该缩写为CSS,但是和HTML中的CSS(重叠样式脚本)重名,所以更改为XSS

1.1简介

XSS 作为OWASP TOP 10 之一

主要基于JavaScript完成恶意的攻击行为,JS可以非常灵活的操作html,css和浏览器,这使得XSS攻击的"想象空间"特别大

XSS可以通过精心构造的JS代码注入到网页中,并且由浏览器执行这段JS代码,达到而已攻击的效果

当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来,用户浏览器就会解析这段XSS代码

XSS的攻击对象是用户和浏览器,前面学习的SQL注入攻击对象则是网站后台数据库

但是XSS漏洞发生在网站服务器

在这里插入图片描述

微博、留言板、聊天室等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS攻击的风险

只要没有对用户的输入进行严格过滤,就会被XSS

1.2危害

XSS利用JS代码实现攻击,有很多攻击方法,下面简单列出几种

  • 盗取各种用户账号
  • 盗取用户Cookie资料,冒充用户身份进入网站
  • 劫持用户会话,执行任意操作
  • 刷流量,执行弹窗广告
  • 传播蠕虫病毒

1.3XSS漏洞验证

我们可以用一段简单的代码,验证和检测漏洞的存在,这样的代码叫做PoC(Proof of Concept)

PoC —>漏洞的验证与检测
EXP—> 漏洞的完整利用工具
Shellcode—> 利用漏洞时,所执行的代码
payload—> 攻击载荷

  • 在sqlmap中叫做—》攻击代码模板
  • 在msf中叫做—》Shellcode类似,功能是建立与目标的连接

PoC漏洞检测代码

  1. <script>alert(/xss/)</script>—》最常用
  2. <script>confirm('xss')</script>
  3. <script>prompt('xss')</script>

测试网页代码

在这里插入图片描述

在这里插入图片描述

代码写在例如网站留言板的位置,点击提交,发现弹窗,我们输入的内容直接被浏览器执行了

二、XSS的分类

大概分为3个类型:反射型XSS、存储型XSS、DOM型XSS

2.1 反射型XSS

非持久性、参数习惯的跨站脚本

反射型的JS代码在Web应用的参数(变量中),如搜索框的反射型XSS

在这里插入图片描述

在搜索框中,提交PoC代码,点击搜索,即可触发反射型XSS

注意,提交的PoC会出现在(搜索框行为)search.php页面的keywords参数中

上面的网页留言本栗子就是反射型XSS

2.2存储型XSS

持久性的跨站脚本

XSS代码不是在某个参数、变量中,而是写进数据库或文件等可以永久保存数据的介质中

通常发生在留言板等地方,将恶意代码写入到数据库中,然后为了浏览器触发XSS,需要第二步模拟网站后台管理员,查看留言,第一时间执行XSS代码

当管理员通过留言审核,每次访问留言页面,都会执行代码

2.3DOM型XSS

DOM XSS比较特殊

本地修改DOM树

在这里插入图片描述

举栗

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

只要修改DOM树,浏览器会重新渲染页面

源代码+XSS代码—》新的DOM树代码

三、XSS的构造

其实还有flash构造,但是google开始不再支持flash,故接下来不再详细介绍

3.1利用【<>】构造HTML、JS

可以利用【<>】构造HTML、JS的<script>标签

例如:<script> alert(/xss/)</script>上面举栗

3.2伪协议构造

在IE浏览器框直接输入:jsvascript:alert(/xss/);,利用javascript协议弹窗

测试

在这里插入图片描述

在这里插入图片描述
除了链接,还可以是按钮、图片等,点击弹框

3.3产生自己的事件

"事件驱动"是一种比较经典的编程思想。

在网页中发生的事件很多,如鼠标移动、点击,键盘输入等,在JS里面都有学习

JS通过这些事件进行响应,我们可以通过事件触发JS函数,触发XSS

事件种类

  • windows事件—>windows对象触发,例如alert事件
  • Form事件—>表单动作触发
  • keyboard事件
  • Mouse事件
  • Media事件

<img src='x.jpg' onmouseover = 'alert(/xss/)>鼠标经过弹窗

3.4利用CSS跨站

在这里插入图片描述

3.5其他标签以及手法

在这里插入图片描述

四、XSS的变形

绕过XSS过滤器检测

在这里插入图片描述


参考:B站千峰

上一篇:网络安全学习篇48_第四阶段_XSS防御、XSS平台的使用
下一篇:网络安全学习篇46_第四阶段_其他注入手法、自动化注入

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月12日 04时02分53秒