052-WEB攻防-XSS跨站脚本攻击反射型存储型DOM型标签闭合输入输出JS代码解析

052-WEB攻防-XSS跨站脚本攻击&反射型&存储型&DOM型&标签闭合&输入输出&JS代码解析

#知识点:

1、XSS跨站-输入输出-原理&分类&闭合
2、XSS跨站-分类测试-反射&存储&DOM

演示案例:

➢XSS跨站-输入输出-原理&分类&闭合
➢XSS跨站-分类测试-反射&存储&DOM

#XSS跨站-输入输出-原理&分类&闭合

漏洞原理:接受输入数据,输出显示数据后解析执行
基础类型:反射(非持续),存储(持续),DOM-BASE
拓展类型:jquery,mxss,uxss,pdfxss,flashxss,上传xss等
常用标签:https://www.freebuf.com/articles/web/340080.html
攻击利用:盲打,COOKIE盗取,凭据窃取,页面劫持,网络钓鱼,权限维持等
安全修复:字符过滤,实例化编码,http_only,CSP防护,WAF拦截等
测试流程:看输出想输入在哪里,更改输入代码看执行(标签,过滤决定)

Untitled

Untitled

Untitled

1.反射型XSS:(简单案例

常见情况是攻击者通过==构造一个恶意链接的形式==,诱导用户传播和打开,由于**链接内所携带的参数会回显于页面中或作为页面的处理数据源,最终造成XSS攻击。**

  • 简单案例:

    • 设置x值为什么,相应就会解析执行什么

    • 利用嵌套js格式,生成嵌套网址:192.168.137.1:84/xss.php?x=<iframe src="http://www.xiaodi8.com">test</iframe>

    • 如果这段代码被插入到一个网页中,并且该网页的用户受到攻击者的控制,那么该用户的浏览器将加载 http://www.xiaodi8.com 这个地址,并在页面中嵌入一个 <iframe> 元素,显示该地址的内容。

    • 那么就可能导致跨站脚本攻击。攻击者可能会尝试利用这种方式来==窃取用户的信息、劫持用户会话,或者进行其他恶意活动。==

      Untitled

      Untitled

    Untitled

  • 需要注意的问题:

    <?php
    //反射型
    $code=$_GET['x'];
    //echo $code;
    **//模拟成接受图片显示图片
    echo "<img src=$code>";**
    ?>
    
    1. 真实的XSS攻击语句,需要虑输入和输入的格式

    2. 输入可能会有过滤,输出可能会有其他符号的拼接造成攻击语句执行失败

    3. 可能会造成如下的:击语句存在导致格式问题不能被正常解析和执行

      Untitled

      Untitled

    4. 解决方式:使用特定的语句进行替换,如**x onerror=”alert(1)”**如果你将 onerror="alert(1)" 嵌入到某个 HTML 元素中,那么当该元素加载失败时(例如图像加载失败、脚本加载失败等),JavaScript 中的 alert(1) 将会被执行,弹出一个带有 “1” 的警告框。

      Untitled

      Untitled

2.存储型XSS:(简单案例

存储型XSS是持久化的XSS攻击方式,将恶意代码存储于服务器端,
当其他用户再次访问页面时触发,造成XSS攻击。

  • 简单案例:

    • 打开之前创建的留言板功能,依据ip访问http://192.168.137.1:84/gbook.php
    • 将xss攻击写入在用户名处==:<script>alert(1)</script>== 内容随便填写,然后提交
    • 发现每次访问页面的时候,都会弹出1的提示框,说明xss攻击成功

    Untitled

    Untitled

    Untitled

  • 遇到问题:

    • 如果发现,没有弹窗,应该在Firefox 52.0.2 渗透便携版的页处打开JS解析转换按键

    Untitled

3.DOM-base型XSS:(简单案例

通过**修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。**
页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行

  1. 寻找可操纵的DOM元素: 攻击者会寻找页面上的DOM元素,例如URL参数、cookie、用户输入等,这些DOM元素的值可能会被动态地嵌入到页面中。
  2. 构造恶意载荷: 攻击者通过在寻找到的DOM元素中注入恶意代码,构造出一个特殊的输入值。这个输入值在后续被浏览器解释执行时,将导致恶意代码执行。
  3. 修改DOM环境: 攻击者通过修改DOM元素的值,或者在页面中插入特殊的HTML或脚本标签,改变了原始的DOM环境。
  4. 触发和执行: 当**页面加载或用户与页面交互时,浏览器解析修改后的DOM环境,执行了包含恶意代码的DOM元素,导致攻击生效。**
  • 简单案例:

    • 创建对应的html代码,
    • 通过URL访问该页面http://192.168.137.1:84/domxss.html#https://www.baidu.com)并在**#后面跟上,想要跳转的页面,访问即可成功跳转**
    <!-- dom-xss-test 页面1. 设置页面标题为 "dom-xss-test"。2. 引入 jQuery 库,版本为 1.6.1。3. 利用 JavaScript 检查当前 URL 的哈希部分。4. 如果存在哈希部分,提取其中的 URL,并将页面重定向到该 URL。
    --><html>
    <head><!-- 设置页面标题 --><title>dom-xss-test</title><!-- 引入 jQuery 库 --><script src="https://code.jquery.com/jquery-1.6.1.min.js"></script><script>// JavaScript 代码var hash = location.hash;// 如果 URL 中有哈希部分if(hash){// 提取 URL
    **//hash.substring(1): 对 hash 字符串调用 substring(1) 方法。
    //substring 方法用于提取字符串的一部分,参数为开始索引。
    //在这里,从索引 1 开始提取,即去掉了 # 号。**var url = hash.substring(1);// 重定向页面到提取的 URLlocation.href = url;}</script>
    </head>
    <body><!-- 页面主体内容 -->dom xss test.
    </body>
    </html>
    

    Untitled

    Untitled

#XSS跨站-分类测试-反射&存储&DOM

数据交互的地方
get、post、headers
反馈与浏览
富文本编辑器
各类标签插入和自定义

数据输出的地方
用户资料
数据输出
评论,留言等
关键词、标签、说明
文件上传

1.反射型XSS:(某案例测试)鸡肋,需要自己创建构造,还需要目标人物触发条件限制太多

重点:
1.页面输入的数据的是否能被自己掌控
2.进行判断是否是符号没有闭合还是存在过滤

  • 测试网址:https://useragent.openadmintools.com/

  • 使用burp自带的浏览器进行抓包,点击Open browser

  • 输入目标网址进行抓包,将数据包中的UA头加入**ddd<script>alert(1)</script> ddd是为了方便判断Xss代码在哪里执行

  • 点击放行数据包,发现页面弹出提示框1

    Untitled

    Untitled

    Untitled

  • 详细分析发现,执行的Xss攻击在下面的UA头处,上面的UA头被双引号解析为字符串,没有被执行

    Untitled

    Untitled

2.存储型XSS:(某案例测试)交互性的方式和功能越多越容易实现入侵

存储型XSS是持久化的XSS攻击方式,将恶意代码存储于服务器端,
当其他用户再次访问页面时触发,造成XSS攻击。

  • 测试靶场:小皮面板(phpStudy 服务器运维管理面板)

  • 登录面板,发现存在==日志操作等功能,提示登录操作等信息 (可以使用XSS恶意代码在用户名上,当管理员访问日志的时候,自动触发==)

Untitled

Untitled

Untitled

Untitled

3.DOM-base型XSS:(某案例测试)

通过修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。
页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行。

  • 测试对象:使用"edu.cn inurl:url=http" 在谷歌里面搜索对应网址

    • 您提供的搜索字符串 “edu.cn inurl:url=http” 意味着您正在寻找包含 “edu.cn” 且在 URL 中包含 “http” 的网页。这样的搜索字符串通常用于在搜索引擎中查找具有特定特征的网站或页面。

      1. “edu.cn”: 这是一个域名后缀,通常表示网站与教育机构相关,是中国的高等教育机构的域名后缀。通过在搜索中包含 “edu.cn”,您限定了搜索结果仅包含这一类域名。
      2. “inurl:”: 这是搜索引擎查询语法中的一部分,用于指定搜索结果中必须包含特定字符串的 URL。在这里,“inurl:url=http” 表示搜索结果中的 URL 必须包含 “url=http” 这个字符串
    • http://www.192011.com/export.php?url=http%3A%2F%2Fwww.nufe.edu.cn%2F(通过官方数据库,锁定URL,如果不是数据库中的网址,禁止替换)

      Untitled

      Untitled

    • http://hao.2itcn.com/export.php?url=http%3A%2F%2Fwww.ccnu.edu.cn%2F(存在过滤:对javascript,和)

      Untitled

      Untitled

  • 不存在过滤的,直接替换url为XSS攻击语句即可,出现弹窗

    Untitled

    Untitled

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/273209.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序如何实现下拉刷新

1.首先在你需要实现下拉刷新页面的json文件中写入"enablePullDownRefresh": true。 2.在js文件的onPullDownRefresh() 事件中实现下拉刷新。 实现代码 onPullDownRefresh() {console.log(开始下拉刷新)wx.showNavigationBarLoading()//在标题栏中显示加载图标this.d…

HarBor私有镜像仓库安装部署

环境准备 #>>> redis $ yum -y install redis $ systemctl enable --now redis $ vim /etc/redis.conf modify: bind <ipaddress> $ systemctl restart redis#>>> nfs $ yum -y install nfs-utils $ mkdir -p /data/harbor $ vi /etc/exports /data/h…

css--浮动

一. 浮动的简介 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 二. 元素浮动后的特点 &#x1f922;脱离文档流。&#x1f60a;不管浮动前是什么元素&#xff0c;浮动后&#xff1a;默认宽与高都是被内容撑开&#xff0…

Text Field文本输入框

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Text Field文本输入框 一、最基本的本文输入框1、基础示例2、一些表单属性3、验证 二、多行文本 一、最基本的本文输入框 1、基础示例 import {Box, TextField} from "…

学术论文GPT的源码解读与二次开发:从ChatPaper到gpt_academic

前言 本文的前两个部分最早是属于此旧文的《学术论文GPT的源码解读与微调&#xff1a;从ChatPaper到七月论文审稿GPT第1版》&#xff0c;但为了每一篇文章各自的内容更好的呈现&#xff0c;于是我今天做了以下三个改动 原来属于mamba第五部分的「Mamba近似工作之线性Transfor…

修改简化docker命令

修改|简化docker命令 使用命令打开 .bashrc 文件&#xff1a; vim ~/.bashrc在文件中添加类似以下行来创建别名&#xff1a; # 查看所有容器 alias disdocker images # 查看运行容器 alias dpsdocker ps # 查看所有容器 alias dpsadocker ps -a # 停止容器 alias dsdocker s…

PostgreSQL数据优化——死元组清理

最近遇到一个奇怪的问题&#xff0c;一个百万级的PostgreSQL表&#xff0c;只有3个索引。但是每次执行insert或update语句就要几百ms以上。经过查询发现是一个狠简单的问题&#xff0c;数据库表死元组太多了&#xff0c;需要手动清理。 在 PG 中&#xff0c;update/delete 语句…

PCM会重塑汽车OTA格局吗(1)

目录 1.汽车OTA概述 2.ST如何考虑OTA&#xff1f; 2.1 Stellar四大亮点 2.2 PCM技术视角下的OTA 3.小结 1.汽车OTA概述 随着智能网联汽车的飞速发展&#xff0c;汽车OTA也越来越盛行&#xff1b; 目前来讲OTA分为FOTA和SOTA(Software-over-the-air)两种&#xff0c;区别…

AI新工具 百分50%算力确达到了GPT-4水平;将音乐轨道中的人声、鼓声、贝斯等音源分离出来等

1: Pi 百分50%算力确达到了GPT-4水平 Pi 刚刚得到了巨大的升级&#xff01;它现在由最新的 LLMInflection-2.5 提供支持&#xff0c;它在所有基准测试中都与 GPT-4 并驾齐驱&#xff0c;并且使用不到一半的计算来训练。 地址&#xff1a;https://pi.ai/ 2: Moseca 能将音乐…

【CSS面试题】高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

HarmonyOS 数据持久化 关系型数据库之 查询逻辑编写

前面两篇文章 HarmonyOS 数据持久化 关系型数据库之 初始化操作 和 HarmonyOS 数据持久化 关系型数据库之 增删改逻辑编写 我们已经编写了 初始化 和 增删改 操作的基本逻辑 最后 收尾一下查询的函数 我们还是打开编辑器 然后 打开项目 找到 我们正在写的这个 relationalClass…

力扣---简化路径

给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 / 开头&#xff09;&#xff0c;请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&#xff0c;一个点&#xff08;.&#xff09;表示当前目录本身&#xff1b;此外…

白皮书发布|超融合运行 K8s 的场景、功能与优势

目前&#xff0c;不少企业都使用虚拟化/超融合运行 Kubernetes 和容器化应用。一些用户可能会有疑惑&#xff1a;既然 Kubernetes 可以部署在裸金属上&#xff0c;使用虚拟化不是“多此一举”吗&#xff1f; 在电子书《IT 基础架构团队的 Kubernetes 管理&#xff1a;从入门到…

【STA】SRAM / DDR SDRAM 接口时序约束学习记录

1. SRAM接口 相比于DDR SDRAM&#xff0c;SRAM接口数据与控制信号共享同一时钟。在用户逻辑&#xff08;这里记作DUA&#xff08;Design Under Analysis&#xff09;&#xff09;将数据写到SRAM中去的写周期中&#xff0c;数据和地址从DUA传送到SRAM中&#xff0c;并都在有效时…

NoSQL--3.MongoDB配置(Linux版)

目录 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机&#xff1a; 2.2.2 启动MongoDB服务&#xff1a; 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机&#xff1a; &#xff08;笔者使用XShell传输&#xff09; 如果不想放在如图的路径&#xff0c;删除操作…

嵌入式系统

一、基本概念 嵌入式系统是以应用为中心、以计算机技术为基础&#xff0c;并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统&#xff0c;需要满足应用对功能、可靠性、成本、体积和功耗方面的严格要求。从计算机角度看&#xff0c;嵌入式系统是指嵌入各种设备及应用产品…

MongoDB开启事务

MongoDB开启事务 配置单节点。到路径C:\Program Files\MongoDB\Server\4.0\bin 使用记事本以管理员权限打开文件mongod.cfg添加如下配置&#xff1a; replication:replSetName: rs02. 重启MongoDB服务 3. 重启后执行命令 rs.initiate()

【嵌入式——QT】MDI应用程序设计

MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口&#xff0c;这些MDI子窗口在主窗口里显示&#xff0c;并享受主窗口上的工具栏和菜单等操作功能&#xff0c;主窗口上的操作都针对当前活动的MDI子窗口进行。 图示 代码示例 QWMainWindow.h #ifndef QWMAINWINDOW_H …

大语言模型在科技研发与创新中的角色在快速变化

在技术研发与创新中&#xff0c;比如在软件开发、编程工具、科技论文撰写等方面&#xff0c;大语言模型可以辅助工程师和技术专家进行快速的知识检索、代码生成、技术文档编写等工作。在当今的软件工程和研发领域&#xff0c;尤其是随着大语言模型技术的快速发展&#xff0c;它…

【Web】浅聊Java反序列化之Rome——EqualsBeanObjectBean

目录 简介 原理分析 ToStringBean EqualsBean ObjectBean EXP ①EqualsBean直球纯享版 ②EqualsBean配合ObjectBean优化版 ③纯ObjectBean实现版 关于《浅聊Java反序列化》系列&#xff0c;纯是记录自己的学习历程&#xff0c;宥于本人水平有限&#xff0c;内容很水&a…