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

入门级反射型xss实战

本文仅用于安全技术学习交流,所有目标信息已脱敏处理。

⚠️ 新手向文章,大佬勿喷,直接掠过即可。(新手,有错误欢迎指正)

信息收集

进入目标网站首页,页面风格明显偏老。查看源码发现使用了 jQuery(版本较旧),这类老站点往往对用户输入的过滤不够严格,存在 XSS 风险。

初步探测

在搜索框输入经典 payload:

<script>alert(1)</script>

结果:直接被 WAF 拦截。

尝试 URL 编码绕过:

%3Cscript%3Ealert(1)%3C/script%3E

结果:依然被拦截。

猜测 WAF 可能过滤了alert()函数,尝试替换:

<script>console.log(1)</script>

结果:还是被拦截。

再次进行 URL 编码:

%3Cscript%3Econsole.log(1)%3C/script%3E

结果:这次没有触发 WAF。

分析 WAF 规则

三次测试的对比:

Payload

是否拦截

说明

<script>alert(1)</script>

✅ 拦截

包含<script

<script>console.log(1)</script>

✅ 拦截

包含<script

%3Cscript%3Econsole.log(1)%3C/script%3E

❌ 未拦截

URL 编码后绕过了<script字符串匹配

结论:WAF 的规则是匹配<script这个字符串模式,而非单纯的尖括号<>

为什么编码后的 payload 没成功?

虽然绕过了 WAF,但控制台并没有输出1

查看页面源码中输入的回显位置,发现:

HTML

<input type="text" value="console.log(1)&lt;/script&gt;">

WAF 的处理逻辑:直接删除了<script>字符串,剩余部分原样保留。

WAF 的规则是匹配并删除<script>字符串,而非拦截整个请求。编码后的 payload 绕过了字符串匹配,但解码后仍被过滤。

此时:

  • console.log(1)只是HTML 属性值中的普通文本
  • </script>被 HTML 实体编码为&lt;/script&gt;或浏览器当作纯文本
  • 没有任何代码执行的环境

核心问题:输入被当作 HTML 属性值处理,没有进入 JavaScript 执行上下文。

转换思路:跳出字符串执行

既然输入被包裹在双引号中,尝试闭合前面的字符串和语句,然后注入代码。

构造 payload:

";console.log(1);//

分解执行逻辑:

部分

作用

"

闭合value="

;

结束变量赋值语句

console.log(1)

注入的恶意代码

//

注释掉后面多余的"

最终页面中的代码变为:

var keyword = "";console.log(1);//";

验证

将 payload 进行 URL 编码:

%22%3Bconsole.log(1)%3B%2F%2F

提交后观察浏览器控制台:

控制台成功回显,证明反射型 XSS 存在。

修复建议

  1. 输出编码:对用户输入进行 HTML 实体编码("&quot;<&lt;等)
  2. 避免直接拼接:不要将用户输入直接拼接到<script>标签内的字符串中
  3. 使用安全的 DOM 操作:避免使用innerHTMLdocument.write()处理不可信数据
  4. 启用 CSP:配置 Content-Security-Policy 限制内联脚本执行

总结

阶段

关键动作

探测

经典 payload 测试 WAF 边界

分析

通过对比测试确定 WAF 规则是匹配<script

定位

查看源码确认输入回显位置(var keyword = "..."

绕过

闭合字符串 + 语句注释,跳出上下文执行代码

验证

控制台回显确认漏洞存在


免责声明:本文所述技术仅用于合法授权的安全测试和学习研究,请勿用于非法用途。

http://www.cnnetsun.cn/news/3095437.html

相关文章:

  • 阿里云文件存储NAS对接完全指南:从零搭建到生产级调优
  • Three.js 分级地图教程
  • 暗黑4Data Retrieval Error报错/找不到d3d12.dll?两步操作!轻松解决不重装
  • threejs + vite + vue3 数字孪生简单案例
  • SPT-AKI存档编辑器终极指南:5分钟掌握离线版塔科夫存档修改全技巧
  • ClickHouse 慢查询怎么分析?我做了一个 EXPLAIN 可视化 + AI 调优助手
  • 2026 抖店一件代发拍单软件选购完整指南|筛选标准 + 避坑要点,选对工具自动发货更省事
  • 2026法国名义雇主EOR服务权威推荐榜单
  • 数字化转型下的许可优化:企业竞争新优势
  • 如何用UABEA彻底改变你的Unity资源编辑体验:从入门到精通的完整指南
  • Base Node:自己跑一个以太坊 L2 节点
  • AI在互联网开发工作中的应用
  • 2026年GEO生成式引擎优化服务商全景深度剖析
  • 如何解决视频生成中衣服和群众问题
  • 轻松搞定论文:6款2026年顶尖AI论文软件深度测评
  • MySQL 迁移实战——如何实现真正的“零改造“平滑切换
  • 8050和8550三极管参数
  • 《2026最新实测10款AI直播工具:告别深夜盯播,哪款更适合商家直播?》
  • nvm与nrm安装使用指南:提升Node.js开发效率
  • ClaudeCode最新版本安装
  • 嵌入式安全网关:A5000加密芯片与PIC18F微控制器的实战应用
  • Ubuntu 18.04 上 ROS1 Melodic 安装配置教程
  • 2.0T 高导磁芯 + IP68 防护 亿磁通 CT 取电技术突破宽工况应用瓶颈
  • 墨香情手游官方下载:多层幽界秘境寻宝获取绝版国风限定时装外观
  • 外网访问OpenWrt
  • AI算力盒子工作原理解析:边缘端AI推理的实现逻辑全拆解
  • GPT-5.5 中的测试时计算扩展:技术原理与产业影响
  • Bryntum Scheduler Pro 7.3.3 专业日程安排组件
  • 国产大模型 × 魔珐星云:从纯文本 Agent 到具身交互智能的实践
  • 蒸馏技术让4步生成高保真图像