当前位置: 首页 > news >正文

小迪Web自用笔记52

XSS跨站

这个漏洞是要引诱用户点击的。

 

 浏览器js执行机制,会执行载入页面的js代码。

 这玩意我在看其他课程的时候听说过,就是搞个透明网站钓鱼你的信息,你打开的是这个网站,但实际上跳转的是另一个网站,另一个网站就是我的钓鱼网站。

 

 反射型顾名思义就是利用浏览器接受js的机制,来执行恶意代码(因为原本只是把内容显示在网页上,但是传了恶意代码之后却不是如此。)

这玩意是你自己构造出来的,但是你得诱导别人访问这个东西,有点偏向于社工。

 

存储型(顾名思义就是被数据库存储的地方):

假设我在名字之中写入了恶意的弹窗代码,由于这个东西已经存入了数据库中,而每当别人再次访问这个页面的时候,浏览器就会自动加载,导致别人每进入一次这个鬼页面(存有我恶意代码的页面)就会弹窗一下。

 

我感觉这个漏洞是访问这个页面的人越多危害越大。

还有就是可以套管理员的信息,比如给客服给站长提交建议什么的,你搞一个恶意代码,然后就可以套他的信息了,盗取cookie。

Dom操作:

你网址上的信息一旦发生更改就会跳转过去。

 

 这个功能取的是你浏览器上的值。

 取表单里面的值进行数据操作,取URL里面的值进行功能上的操作。

 

是的,你这个判断基本正确,这是功能实现代码里的逻辑漏洞,属于 DOM XSS 漏洞的一种典型场景。

 

 

 

1. 为什么说是“功能点的漏洞”?

 

- 功能本身没问题:你要做的是“通过 URL 跳转到其他网站”,这个功能是合理的。

- 漏洞出在实现方式:问题不在功能设计,而在代码逻辑对用户输入( location.hash )的处理不安全,导致攻击者可以构造恶意 URL 执行脚本。

 

这种情况也可以理解为功能点的安全缺陷——功能存在,但实现代码有漏洞。

 

 

 

2. DOM XSS 的本质

 

- 不是“注入源代码”:传统 XSS 是把恶意代码注入到服务器返回的 HTML 里,而 DOM XSS 是直接在客户端通过 JS 操作 DOM 触发的。

- 核心是“用户输入被当作代码执行”:你的代码把  location.hash  直接当作 URL 跳转,而  javascript:  伪协议允许在 URL 里写脚本,这就相当于把用户输入当作代码执行了。

 

 

 

3. 如何修复?

 

- 过滤输入:只允许合法的 URL 格式(比如以  http://  或  https://  开头)。

- 示例修复代码:

javascript

var hash = location.hash;

if (hash) {

    var url = hash.substring(1);

    // 只允许 http/https 开头的 URL

    if (url.startsWith('http://') || url.startsWith('https://')) {

        location.href = url;

    } else {

        // 非法 URL,跳转到默认页面

        location.href = '/';

    }

}

 

 

 

 

4. 总结

 

- 你的代码问题属于 DOM XSS 漏洞,是功能实现代码的逻辑缺陷。

- 修复的关键是对用户可控的输入进行严格验证和过滤,而不是直接使用。

 按照我的理解,就是功能点的漏洞。

 

 

直接写代码是有问题的,因为它接收的时候写到了标签里面,得闭合。

 利用错误信息弹窗,闭合。

例子:

 了解漏洞的本质输入与输出

 

 他是接收数据包,然后显示给我们看。

如果不能成功,你就看是不是有符号闭合干扰。

这个XSs得要用户自定义。

闭合:让前后符号进行1对1的关系,就很像那个注入。

 

 因为它这个东西会存入后面的日志,所以可以载入。

 这应该是属于重定向跳转的漏洞吧,解析后面的地址代码并跳转。不过他首先应该是会在页面中解析。

DOM漏洞并非仅属于重定向跳转漏洞,重定向只是其常见表现之一,核心是客户端对DOM(文档对象模型)操作时,未过滤用户可控输入导致的安全风险。

 

- 本质差异:DOM漏洞是纯客户端漏洞,根源是JavaScript操作DOM树时,直接使用/拼接用户可控数据(如URL参数、输入框内容),未做安全过滤,导致恶意代码执行或非预期行为。

- 常见场景:除了你说的“解析地址并跳转”(如通过 window.location.href 拼接恶意URL实现跳转),更典型的是DOM-based XSS(跨站脚本),比如将用户输入直接插入页面DOM(如 document.write ),触发恶意脚本执行,而非单纯跳转。

- 解析特点:你提到的“先在页面中解析”是准确的——DOM漏洞的触发完全在浏览器端,不依赖服务器解析,仅由客户端JS处理DOM数据时的逻辑缺陷导致。

 所以它俩最大的区别就是一个经过服务器,一个不经过服务器js中执行。

 这个是通过拼接session里面的东西,来完成的XSS。

是的,这段代码展示了一个通过拼接  session  数据实现 DOM 型 XSS的典型场景,核心风险点在于:

 

1. 漏洞本质

 

代码中  s_session  对象的  seqId  属性值为:

 

javascript

seqId: " - alert(1) - "

 

 

如果这段代码是客户端 JavaScript的一部分(比如嵌入在页面中或通过  script  标签加载),并且  s_session  中的数据来自不可信来源(如 URL 参数、 localStorage 、用户输入等),同时被直接用于 DOM 操作(如  innerHTML 、 document.write ),就会触发 XSS。

 

2. 攻击链路分析

 

假设代码执行流程如下(常见场景):

 

javascript

// 1. 不可信数据来源(示例:从 URL 参数读取)

const userInput = new URLSearchParams(location.search).get('seqId'); 

 

// 2. 拼接进 session 数据(此处模拟代码,实际可能由服务器返回或客户端生成)

const s_session = {

  logId: "3091716699",

  seqId: userInput, // 攻击者构造的 payload:" - alert(1) - "

  debug: false

};

 

// 3. 危险 DOM 操作(直接将 session 数据插入页面)

document.getElementById('seqId').innerHTML = s_session.seqId; 

 

 

此时, alert(1)  会被浏览器当作 JavaScript 代码执行,触发弹窗。

 

3. 关键风险点

 

- 数据来源不可信: s_session  中的  seqId  可能来自用户可控的输入(如 URL 参数、表单、 localStorage  等),攻击者可注入恶意代码。

- DOM 操作无过滤:直接使用  innerHTML 、 document.write  等危险 API 插入不可信数据,未进行 HTML 转义或 XSS 过滤。

 

4. 修复建议

 

- 输入过滤:对  s_session  中不可信数据使用 XSS 过滤库(如 DOMPurify)净化:

javascript

import DOMPurify from 'dompurify';

const safeSeqId = DOMPurify.sanitize(s_session.seqId);

 

- 安全渲染:优先使用  textContent (仅渲染文本,不解析 HTML)替代  innerHTML :

javascript

document.getElementById('seqId').textContent = s_session.seqId;

 

 

总结

 

这段代码的风险在于将不可信数据(如用户输入)拼接进  session  后,直接用于 DOM 操作,属于典型的 DOM 型 XSS 漏洞。修复需在客户端 JavaScript 中对不可信数据进行过滤,并使用安全的 DOM 操作 API。

http://www.dtcms.com/a/443421.html

相关文章:

  • 建工网站wordpress和wiki
  • 什么是网站静态化制作一款手游需要多少钱
  • C++学习:C++11介绍及其新特性学习
  • 自己做抽奖网站违法吗扁平 网站模板
  • 网站管理和维护北京丰台区
  • 怎样创作一个网站ps设计师网站
  • 四川德行天下建设工程有限公司网站ppt模板下载网站推荐
  • 织梦cms视频网站建设优购物官方网站订单查询
  • 【ROS2学习笔记】Gazebo 仿真与 XACRO 模型
  • 好看的创意网站设计怎么选择网站建设
  • 怎么做有趣的微视频网站广州电商网站建设
  • 建设银行储蓄卡余额查询系统如何做网站百度排名优化
  • 深圳网站定制公司做网站别人输账号代码
  • 银川建立网站温州网站制作企业
  • 做博客网站需要工具吗专门做设计的网站有哪些
  • php学校网站源码网页设计与制作个人网站模板
  • 管理员怎么看网站在线留言响应式手机网站模版
  • 【多线程】线程休眠(Thread Sleep)的底层实现
  • 徐州网站建设哪家好薇商城网站建设开发多少钱
  • 网站结算系统怎么做制作网页时一般需要兼容哪些浏览器
  • 郑州哪有做网站的公司各种网站
  • 贵阳网站开发多少钱黄埔做网站要多少钱
  • 尖塔游戏:二分答案
  • ps做网站分辨率自适应西安建设市场诚信信息平台网站
  • 免费提供网站建设设立公司流程以及需要的资料
  • 10.4交作业
  • 南京做网站南京乐识专心义乌做网站
  • 朋友圈营销企业整站seo
  • 网站手机版下悬浮条怎么做做美食网站需求分析报告
  • 京东Java后台开发面试题及参考答案(下)