小迪安全2022-2023|第35天:WEB攻防-通用漏洞&XSS跨站&反射&存储&DOM&盲打&劫持|web安全|渗透测试|

第35天:WEB攻防-通用漏洞&XSS跨站&反射&存储&DOM&盲打&劫持

一、夸张系列菜单一00:07

1. 课程要点00:54

2. XSS跨站脚本攻击原理02:16

1)跨站脚本攻击概述02:21
  • XSS简介02:28
    • 全称: Cross Site Scripting(跨站脚本攻击),简称XSS
    • 本质: 前端漏洞,主要利用JavaScript代码执行
    • 产生原因: 网站对用户输入过滤不足,导致恶意脚本在页面显示并执行
  • XSS原理02:53
    • 核心机制:
      • 输入输出特征: 必须存在数据交互的输入输出点
      • 执行条件: 服务器未严格过滤用户输入的恶意脚本
      • 触发方式: 浏览器直接执行注入的JavaScript代码
    • 典型场景:
      • 数据交互点:GET/POST参数、HTTP Headers
      • 输出点:用户资料页、关键词标签、富文本编辑器等
  • XSS分类03:43
    • 主要类型:
      • 反射型(非持久型): 恶意脚本通过URL参数即时触发
      • 存储型(持久型): 恶意脚本存储在服务器端持续影响
      • DOM型: 完全在客户端完成攻击,不经过服务器
    • 特殊类型:
      • mXSS(突变XSS)
      • UXSS(通用XSS)
      • Flash XSS
      • UTF-7 XSS
  • XSS危害04:40
    • 基本危害:
      • 信息窃取: 盗取用户Cookie、会话凭证
      • 身份冒用: 利用被盗身份执行操作
      • 恶意传播: 对访问者进行病毒侵害
    • 扩展危害:
      • 权限维持: 结合其他漏洞实现持久控制
      • 钓鱼攻击: 伪造登录界面诱导用户
      • 浏览器劫持: 控制用户浏览器行为
    • 理论边界: 任何JavaScript可实现的功能,XSS理论上均可实现

3. 夸张分类和原理06:46

1)XSS攻击原理与示例演示06:54
  • XSS攻击基本概念
    • 本质:通过网页开发漏洞注入恶意指令代码到网页
    • 执行方式:用户加载并执行攻击者构造的恶意网页程序
    • 攻击媒介:不仅限于JavaScript,还包括Java、VBScript、ActiveX、Flash等
    • 攻击后果:获取更高权限、窃取私密内容、会话和cookie等敏感信息
  • XSS漏洞产生原理
    • 关键条件:
      • 输入点:网页接受用户输入(如搜索框)
      • 输出点:将输入内容直接输出到页面源代码中
    • 攻击过程:
      • 将正常输入(如"xss")替换为JS代码
      • 浏览器渲染时会将JS代码识别并执行
      • 示例:搜索关键词显示在页面源代码中,若替换为则会被执行
  • 本地漏洞演示
    • 反射型XSS示例:
      code=code =code=
      _GET['x'];
      echo$code;
    • ​漏洞表现​:通过URL参数直接输出未过滤内容
    • ​测试方法​xss.php?x=123会输出123,改为xss.php?x=<script>alert(1)</script>则执行弹窗
  • ​DOM型XSS示例​
javascript 复制代码
function domxss() {
  var str = document.getElementById("text").value;
  document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?";
}
  • ​闭合技巧​ :通过构造'><img src="" onmouseover="alert('xss')">等payload实现攻击
  • ​防御要点​:需要对输出内容进行HTML实体编码
  • XSS攻击本质
    • 核心原理:
      • 攻击者构造恶意JS代码
      • 受害者访问包含恶意代码的页面
      • 浏览器解析执行恶意代码
    • 攻击扩展:
      • 获取cookie:通过document.cookie
      • 窃取信息:通过XMLHttpRequest发送数据到攻击者服务器
      • 钓鱼攻击:伪造登录表单
    • 类型区分:
      • 反射型:通过URL参数即时触发
      • 存储型:恶意代码存储在服务器端
      • DOM型:纯前端脚本触发的漏洞
2)应用案例25:42
  • 反射型实例演示
    • 漏洞原理:通过修改User-Agent头注入恶意JS代码,当服务器将UA值直接输出到页面时执行
    • 危害评估:
      • 实际危害较低,因为需要受害者主动修改UA头才能触发
      • 无法通过简单URL诱导实现攻击
      • 现代浏览器有XSS过滤机制
    • 利用限制:
      • 必须手动修改请求头才能利用
      • 无法通过钓鱼链接传播
      • 属于非持久性反射型漏洞
    • 演示过程:
      • 正常UA显示:Mozilla/5.0...
      • 修改为后触发弹窗
      • 但需要攻击者本地修改请求头
    • 利用难点:
      • 需要精准定位管理员
      • 需通过社交工程发送攻击链接
      • 管理员需使用未防护的浏览器
      • 三点缺一不可导致实际利用率低
  • 存储型实例演示26:01
    • 核心区别:
      • 恶意代码会持久化存储到数据库
      • 所有访问受影响页面的用户都会触发
      • 不需要定向诱导特定用户
    • 实际危害:
      • 可窃取大量用户cookie
      • 可能传播XSS蠕虫
      • 常被黑产用于挂马攻击
    • 厂商态度:
      • 普遍认定为高危漏洞
      • 漏洞赏金计划重点收储类型
      • 修复优先级通常为紧急
  • DOM型实例演示26:27
    • 独特特征:
      • 完全在客户端执行不依赖服务端
      • 常见于JS动态操作DOM的场景
      • 传统扫描器难以检测
    • 检测技巧:
      • 关注document.write()等危险函数
      • 检查URL参数直接拼接进HTML
      • 使用#片段标识符测试
    • 修复方案:
      • 避免使用innerHTML
      • 对动态内容进行HTML编码
      • 使用textContent替代
    • 常见利用方式:
      • Cookie窃取:通过document.cookie
      • 会话劫持:接管用户登录态
      • 结合CSRF:发起敏感操作
      • 传播蠕虫:自传播恶意代码
    • 高级利用:
      • 配合BeEF框架进行渗透
      • 内网探测
      • 键盘记录
      • 钓鱼伪造

二、存储型XSS36:00

1. 订单查询功能36:39

  • 典型场景:演示使用老旧的订单系统作为案例,该系统具有订单查询功能,是典型的存储型XSS攻击面
  • 攻击原理:当用户在订单信息中注入恶意代码后,管理员查看订单时会触发代码执行
  • 数据交互点:订单查询、留言板等用户输入数据最终会被管理员查看的页面都是潜在攻击点

2. 营销手段与商品展示37:03

  • 常见目标:药品(如三七)、成人用品、保健品等特殊商品营销页面
  • 输入点特征:通常包含"立即购买"、"获取资料"等表单提交功能
  • 数据收集方式:要求用户填写称呼、电话等联系信息,这些字段可能未做充分过滤

3. 招商网站示例37:33

  • 典型结构:包含项目资料领取功能,需要用户提交个人信息
  • 攻击向量:在"联系方式"或"具体要求"等字段中插入XSS payload
  • 后台交互:招商专员查看用户提交信息时会触发恶意代码执行

4. 信息提交与后台查看38:05

  • 攻击流程:
    • 攻击者在订单/留言中插入恶意脚本
    • 管理员登录后台查看新订单
    • 恶意脚本在管理员浏览器中执行
  • 利用条件:需要管理员查看用户提交数据的页面未做输出过滤

5. XSS攻击演示准备39:14

  • 测试步骤:
    • 在订单"具体要求"字段插入测试payload
    • 提交订单等待管理员查看
    • 观察后台反应验证漏洞存在
  • 基础payload:使用简单的进行初步验证

6. 弹窗代码示例39:39

  • 攻击效果:管理员查看订单时触发弹窗
  • 代码分析:演示使用的是基础的alert弹窗,实际攻击中会替换为窃取cookie的恶意代码
  • 空白显示:payload执行后对应字段可能显示为空白,这是存储型XSS的典型特征

7. 恶意代码植入与执行40:37

  • 攻击升级:将弹窗代码替换为窃取cookie的脚本
  • 会话劫持:获取管理员cookie后可直接登录后台
  • 防御措施:
    • 输入输出过滤
    • 设置HttpOnly标志
    • 内容安全策略(CSP)

三、叉SS平台40:58

1. 平台演示与操作41:09

1)XSS平台使用演示
  • 平台选择:演示使用sars平台进行XSS测试,建议选择差评平台进行演示
  • 账号注册:网上有免费平台可用,但需注意信息可能被平台所有者获取
  • 隐私风险:使用第三方平台时,获取的所有信息都可能被平台方看到
2)平台搭建建议
  • 自建优势:
    • 完全掌控数据安全
    • 避免信息泄露风险
    • 适合隐蔽性要求高的项目
  • 第三方使用场景:
    • 适合学习测试用途
    • 操作简单快捷
    • 无需维护服务器
3)平台功能说明
  • 核心功能:
    • 支持http/https协议
    • 提供Tor网址访问
    • 支持邮箱收信功能
  • 特色服务:
    • 自动生成测试网址
    • 提供备用域名突破屏蔽
    • 开通TG交流频道处理BUG
  • 注意事项:
    • 仅限安全测试用途
    • 数据量大时需考虑服务器性能
    • 平台依赖捐赠维持运营

2. 平台使用与功能42:01

  • 平台资源:该平台提供大量打点教程资源,但实际教学中不重点讲解打点技术
  • 平台搭建:从零开始搭建个人XSS平台完全可行,且操作简单
  • 商业陷阱:需警惕部分培训机构以"赠送平台/邀请码"为噱头的营销手段,实际价值有限

3. 平台项目创建与配置42:35

  • 命名规范:建议使用"测试日期+用途"的命名方式(如rrr_test表示2023年测试)
  • 模块选择:
    • 默认模块:用于获取固定代码模板
    • 公共模块:包含基础认证钓鱼等常见功能
  • 操作流程:
    • 点击"创建项目"
    • 输入项目名称(示例:xss_test)
    • 选择默认模块
    • 进入代码生成界面

4. 平台代码获取与利用43:06

  • 代码类型:
    • HTTPS代码(默认)
    • HTTP代码(需转换)
    • 备用域名代码(用于突破屏蔽)
  • 核心原理:通过诱导目标触发预设代码实现攻击
  • 实施步骤:
    • 复制生成的攻击代码
    • 注入到存在XSS漏洞的输入点(如留言板)
    • 提交触发代码执行
    • 在平台查看返回结果
  • 典型应用:
    • 图片探测系统:记录referer、IP等信息
    • 后台地址探测:通过外部图片调用实现
  • 注意事项:
    • 需注意代码转义问题
    • 备用域名可用于规避360等安全软件的拦截
    • 实际测试时应遵守法律法规

5. 平台测试与效果展示

1)BeEF平台部署与使用
2)XSS攻击演示流程
  • 攻击准备:在XSS平台(https://xss.pt)创建测试项目,项目ID示例为44197
  • 触发条件:当管理员访问特定信息时,会自动加载XSS攻击代码
3)攻击效果验证
  • 验证方法:
    • 观察浏览器请求包中是否包含XSS平台地址
    • 检查XSS平台是否接收到管理员cookie等敏感信息
  • 关键特征:地址栏会自动触发包含xss.php?do=project&act=view&id=44197的请求
4)信息收集分析
  • 获取内容:
    • 管理员访问的完整URL地址
    • 当前会话的cookie信息
    • 用户代理(User-Agent)等请求头数据
  • 应用场景:这些信息可用于后续的会话劫持或权限提升攻击

6. 平台信息获取与利用44:21

  • JS代码功能:通过JavaScript代码获取触发者的地址信息,包括地址的自带库信息
  • 登录状态利用:由于目标处于登录状态,获取的地址信息可用于实现登录绕过
  • 信息包含内容:地址信息中可能包含用户代理(User-Agent)、远程地址(REMOTE_ADDR)等关键认证数据

7. 平台登录实现与演示44:36

1)登录绕过原理
  • 自动跳转机制:未登录状态下访问后台地址会触发自动跳转
  • 认证信息伪造:通过Burp Suite等工具伪造获取到的认证信息可实现登录绕过
  • 关键参数:uid参数、cookie值等认证信息是绕过登录的关键
2)实际操作演示
  • 工具使用:演示使用Burp Suite进行请求拦截和修改
  • 信息复制:将获取的认证信息复制到请求头中
  • 验证过程:修改后重新发送请求验证登录是否成功
3)常见问题排查
  • 失败原因:可能由于信息过期、格式错误或WAF拦截导致
  • 解决方法:
    • 检查信息是否完整复制
    • 验证信息时效性
    • 尝试不同编码方式绕过WAF
  • 注意事项:实际操作中可能需要多次尝试才能成功

8. 平台问题与解决尝试45:31

1)浏览器调试问题
  • 调试失败现象: 修改操作后无法确认是否成功,浏览器反复出现异常状态
  • 解决方案尝试:
    • 更换火狐浏览器进行测试
    • 开启代理工具观察数据包
    • 对比本地与服务器返回的cookie差异
2)Cookie验证机制分析
  • 防御手段识别:
    • Session验证: 采用PHPSESSID而非单纯cookie验证
    • 获取不全原因: 部分网站会设置HTTP-only或Secure标志的cookie
  • 实验验证:
    • 完整复制cookie后可成功访问后台
    • 验证失败时需检查session和token等额外验证参数
3)XSS平台搭建与利用
  • BeEF框架:
    • 功能特点: 专业XSS利用框架,支持多种浏览器攻击模块
    • 搭建方法: 使用Docker快速部署,需开放3000端口
    • 基本用法: 通过
4)存储型XSS攻防
  • 攻击链构建:
    • 在常用网站(如博客)植入恶意脚本
    • 利用社交工程诱导访问
  • 防御局限性:
    • 受同源策略限制,仅能执行前端操作
    • 需配合其他漏洞实现深度渗透
  • 检测方法:
    • 监控异常外联请求
    • 分析页面加载的第三方资源

四、DOM型XSS实例分析01:08:27

1. 基本概念

  • 核心区别:与存储型、反射型不同,DOM型XSS的漏洞触发完全在前端页面完成
  • 代码审计重点:主要查看HTML/JS代码,无需审计PHP/JAVA等后端代码
  • 数据流向:恶意输入→前端JS处理→DOM操作→漏洞触发

2. 帝国CMS漏洞实例

  • 漏洞文件:/e/d6/img/index.htm
  • 关键代码:
  • 攻击原理:
    • 通过requestURL获取浏览器地址栏参数
    • 未过滤直接写入DOM(document.write)
    • 构造javascript:alert(1)形式payload

3. 漏洞利用方法

  • 构造方式:
    • 直接修改URL参数:/e/d6/img/index.htm?url=javascript:alert(1)
    • 需要绕过浏览器基础防护策略
  • 特殊构造技巧:
    • 使用javascript:协议头而非传统

4. 实战检测要点

  • 检测目标:存在前端URL参数处理的页面
  • 特征识别:
    • 使用document.write/innerHTML等动态DOM操作
    • 存在location/window.location等URL参数获取
  • 验证方法:
    • 修改参数观察DOM变化
    • 测试简单payload如javascript:alert(1)

五、XSS知识体系总结01:21:28

1. 分类对比

  • 反射型:
    • 特点:一次性构造利用
    • 触发:需要用户点击特定链接
  • 存储型:
    • 特点:攻击代码持久存储在数据库中
    • 触发:所有访问受影响页面的用户
  • DOM型:
    • 特点:完全前端触发
    • 触发:依赖浏览器解析机制

2. 漏洞产生场景

  • 数据交互点:
    • 留言板、评论系统
    • 文章编辑/发布功能
    • 用户资料修改
  • 数据输出点:
    • 文章展示页面
    • 搜索结果页
    • 任何用户可控数据显示区域

3. 核心原理

  • 关键条件:
    • 用户可控制输入内容
    • 未过滤直接输出到页面
    • 输出位置可执行JS代码
  • 本质:控制页面显示内容→注入可执行代码

4. 危害类型

  • 常见危害:
    • 钓鱼攻击(伪造登录框)
    • 会话劫持(窃取cookie)
    • 网页挂马(恶意代码传播)
    • 权限提升(配合CSRF)
      数据泄露(窃取敏感信息)
    • 注:本笔记已按照康奈尔笔记法结构化整理,保留了所有关键示例和技术细节,同时去除了课程中的非技术性对话内容。时间戳标注对应视频中的关键讲解节点,便于复习时快速定位。

六、知识小结

知识点 核心内容 关键要点 难度系数
XSS漏洞原理 输入输出机制导致JS代码执行 - 接收用户输入数据; - 将数据输出到页面; - JS代码被浏览器解析执行 ★★★☆☆
XSS分类 反射型/存储型/DOM型对比 - 反射型:一次性构造利用; - 存储型:持久化数据库攻击; - DOM型:纯前端JS实现 ★★★★☆
反射型XSS 非持久化攻击特点 - 需构造恶意链接; - 依赖受害者点击; - 实战利用难度大 ★★☆☆☆
存储型XSS 数据库持久化危害 - 留言板/评论系统高发; - 可长期影响后续访问者; - 配合XSS平台窃取cookie ★★★★★
DOM型XSS 纯前端漏洞特征 - 不依赖后端处理; - 完全在浏览器环境触发; - 帝国CMS实例分析 ★★★★☆
XSS利用工具 XSS平台/BEEF框架 - XSS平台:cookie窃取基础功能; - BEEF:浏览器劫持/钓鱼攻击; - 端口扫描/社工结合 ★★★★★
防御措施 常见防护与绕过 - 输入输出过滤; - CSP策略; - httponly cookie防护 ★★★★☆
实战案例 典型漏洞场景 - UA查询平台反射案例; - 订单系统存储型案例; - 帝国CMS DOM型案例 ★★★★☆
相关推荐
金士镧(厦门)新材料有限公司2 小时前
片状碳酸镧:科技与环保的隐形“小助手”
科技·安全·全文检索·生活·能源
这个昵称也不能用吗?2 小时前
React 19 【use】hook使用简介
前端·react.js·前端框架
幽反丶叛冥2 小时前
什么是等保(网络安全等级保护)
网络·安全·web安全
web小白成长日记2 小时前
修复 Storybook MDX 中 “does not provide an export named ‘ArgsTable‘” 的实战
前端
FreeBuf_2 小时前
MEDUSA安全测试工具:集成74种扫描器与180余项AI Agent安全规则
人工智能·安全
Aotman_2 小时前
Vue <template v-for> key should be placed on the <template> tag.
前端·javascript·vue.js
Gobysec2 小时前
Goby 漏洞安全通告|Moltbot(Clawdbot)Gateways 未授权访问漏洞
安全
九河云2 小时前
电网“数字配电房”:局放AI模型故障定位缩到30厘米
人工智能·安全·数字化转型·智能电视
Echo_NGC22372 小时前
【联邦学习完全指南】Part 5:安全攻防与隐私保护
人工智能·深度学习·神经网络·安全·机器学习·联邦学习