这是一个XSS游戏网络来进行XSS攻击。关于第1级,我对表单的提交方式有疑问,操作是空白的,那么提交按钮的工作原理是什么? http://www.xssgame.com/f/m4KKGHi2rVUN/? 它的HTML代码是:
<!DOCTYPE html>
<html>
<head>
<style>
body {
background-color: #ffffff;
}
</style>
<script src="/static/js/js_frame.js"></script>
</head>
<body>
<center>
<img src="/static/img/foogle.png">
<br>
<form action="" method="GET">
<input id="demo2-query" name="query" value="Enter query here..."
onfocus="this.value=''">
<input id="demo2-button" type="submit" value="Search">
</form>
</center>
</body>
</html>
和js_frame.js文件是:
top.postMessage({url:window.location.toString()},"*");var originalAlert=window.alert;
window.alert=function(b){function a(){document.getElementById("next_level")?originalAlert("Congratulations, you executed an alert:\n\n"+b+"\n\nYou can now advance to the next level."):originalAlert("You executed an alert, but the server side validation of your solution failed. It probably means that your solution requires user interaction, or is not generic enough to work for a different user. Please try to make it work without user interaction and generic enough so that it works for any user.")}console.log("solved");
top.postMessage("success","*");"onvalidationready"in window?window.onvalidationready=a:setTimeout(a,0)};
添加:我看到html代码不包含可以接收提交的代码,或者是因为chrome控制台的Sources不会显示所有代码?
答案 0 :(得分:0)
具有空白的操作属性将使用当前页面作为目标。这种方式在所有浏览器中均有效,尽管未定义除URL以外的HTML 4 specification saying操作。
使用HTML5,它实际上也是在规范中以这种方式编写的。
答案 1 :(得分:0)
表单提交的默认行为是将内容发送到服务器上的操作url文件进行处理。如果未指定任何操作或操作保持为空,则浏览器假定当前文件(包含html表单)也是处理文件。因此,请求将当前页面Url作为操作。
如果您不需要此行为,建议您在页面中使用<input type="button" />
或简单button
标记。
答案 2 :(得分:0)
当表单的action属性留空时,单击提交按钮时表单将提交到同一页面。如果您不希望在单击提交按钮时提交表单,那么
只需用以下内容替换您的表单标记:
<form action="" onsubmit="return false" method="GET">