自学XSS漏洞时sudo.co.il练习站输入常规payload无法触发该如何解决
先明确关卡过滤规则与输出位置
- 站点默认对
<script>类标签做了过滤/转义处理,直接输入<script>alert('XSS')</script>会被过滤无法执行 - 用户输入的内容最终会被渲染到页面
<input>标签的value属性内,核心绕过思路是闭合原有标签属性,插入可触发事件的非script类XSS代码
可直接生效的Payload构造
无需用户交互的Payload
"><img src=x onerror=alert('XSS')>
生效逻辑:
开头的
">用于闭合原有<input value="的属性和标签结构,后续插入的<img>标签因src指向不存在的资源x,会自动触发onerror事件,直接执行弹窗代码,页面加载即可触发。
短字符Payload
" onmouseover=alert('XSS') autofocus x="
生效逻辑:
不需要完全闭合input标签,仅用
"闭合value属性后直接在input标签内插入onmouseover事件,搭配autofocus让输入框自动获取焦点,用户移动鼠标即可触发执行。
特殊情况适配
如果单引号被转义,可将弹窗内容用反引号包裹调整为:
"><img src=x onerror=alert(`XSS`)>
内容的提问来源于stack exchange,提问作者Eric John E.

