xss注入点关键判断是用户可控输入未经输出编码或过滤即进入html上下文。实操优先检查url参数、表单回显、jsonp接口及前端危险js操作,常见现象包括弹窗、事件触发和javascript伪协议执行。

如何快速识别页面是否存在XSS注入点
关键判断:只要用户可控输入能直接反射或存储进HTML上下文,且未做输出编码或过滤,就极可能形成XSS。
实操建议优先检查以下三类位置:
- URL参数(如
?q=xxx、?id=123)是否原样插入到<script></script>、<img onerror="">或内联事件中 - 表单提交后返回的响应体里,用户输入内容是否未经处理就出现在
<div>${input}</div>这类结构中 - JSONP接口或前端JS直接用
eval()、innerHTML、document.write()渲染服务端返回的字符串
常见错误现象:输入 <script>alert(1)</script> 后弹窗;输入 " onfocus=alert(1) autofocus=" 触发执行;输入 javascript:alert(1) 在 <a href=""></a> 中被解析。
检测CSRF漏洞时必须验证的两个条件
不是所有表单都存在CSRF风险,只有同时满足这两个条件才需重点防御:
- 请求是状态变更操作(如
POST /api/user/update、DELETE /api/order/123),且无随机token校验 - 服务端未校验
Origin或Referer头,也未启用SameSite=Strict/Lax的关键Cookie
使用Burp Suite的 CSRF PoC Generator 可一键生成测试页面。注意:若目标接口接受 Content-Type: application/json 且前端用 fetch() 发送,传统HTML表单无法触发,此时需确认是否支持 text/plain 降级或是否遗漏了 withCredentials: true 场景。
检查HTML注入与DOM-based XSS的常用调试手段
这类漏洞不经过服务端,纯前端JS拼接导致,常规扫描器很难覆盖,必须手动验证。
- 在浏览器控制台执行
document.querySelectorAll('[on*],[href^="javascript:"],[src^="data:"]'),快速定位可疑事件绑定和危险属性 - 搜索前端代码中的
location.hash、location.search、document.referrer等来源,并追踪其是否被用于innerHTML或eval() - 禁用JavaScript后重新加载页面,对比渲染差异——若功能完全失效且关键数据只在JS中动态注入,说明DOM操作权重高,风险上升
典型陷阱:以为加了 encodeURIComponent() 就安全,但它只对URL编码有效;插入到HTML上下文仍需 DOMPurify.sanitize() 或服务端转义。
WAF绕过排查中容易被忽略的HTML特性
很多WAF规则基于关键词匹配,但HTML本身语法灵活,常被用于绕过。
-
<img src="javascript:alert(1)">—— 十六进制编码可绕过部分正则 -
<svg onload="alert(1)"></svg>—— 新标签或事件名不在旧版WAF规则库中 -
<script>eval(atob("YWxlcnQoMSk="))</script>—— Base64编码+动态执行,跳过静态特征检测 - 利用注释干扰:
<script>/*<code>alert(1)</script>*/,某些WAF解析器会误判为注释块而放行
真正难搞的是那些把payload拆成多个请求、靠前端JS拼接还原的场景——这种链式利用方式,连带宽受限的WAF都很难实时重组分析。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











