在此定制html页面上单击按钮后,我试图将代码注入第二个页面(XSSthissite)。我可以通过具有使用Ajax调用表单的javascript函数来重定向到第二页。从技术上讲,检查开发人员工具后,似乎可以通过POST,但是实际上无法登录/重定向,并且未填充字段。具体来说,我看到的是200 POST,而不是如果在该页面上手动提交数据时会收到的302 POST重定向。知道为什么吗?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Having Fun on a Tuesday</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="" method="POST" id="second">
<input type="hidden" name="aufnausindulasdnf" value="aufnausindulasdnf"/>
<input type="hidden" name="treasure" value="urghrugh?"/>
<input type="hidden" name="login" value="testing" />
<input type="hidden" name="password"/>
<input type="hidden" name="action" value="entryway" />
</form>
<script>
function submitFormAjax() {
window.location.assign("http://XSSthissite");
$("#second").submit(function(e) {
e.preventDefault();
$.ajax({
url: 'http://XSSthissite',
type: "POST",
// data: $(this).serialize(),
});
});
$("#second").trigger('submit');
}
</script>
</head>
<body>
<form onsubmit="" method="POST" action="" >
<input id="login_target" value="username"/>
<button type="button" id="unique" onclick="submitFormAjax()">MESSAGE</button>
</form>
</body>
</html>
已删除位置和Ajax的更新代码。仍然发布-并填充所有字段,但拒绝提交!
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Having Fun on a Wednesday</title>
</head>
<body>
<input id="login_target" value="username"/>
<button type="button" id="unique" onclick="submitForm()">MESSAGE</button>
<form action="http://XSSthissite" method="POST" id="second">
<input type="hidden" name="aufnausindulasdnf" value="aufnausindulasdnf"/>
<input type="hidden" name="treasure" value="urghrugh?"/>
<input type="hidden" name="login" value="testing" />
<input type="hidden" name="password"/>
<input type="hidden" name="action" value="entryway" />
</form>
<script>
function submitForm() {
document.getElementById("second").submit()
}
</script>
</body>
</html>
答案 0 :(得分:1)
在您的SubmitFormAjax上,您有以下一行:
window.location.assign("http://XSSthissite");
该行将您网站的当前URL更改为“ http://XSSthissite”(http 200),从而绕过了将提交功能绑定到第二个按钮的操作。
请尝试在不更改当前URL的情况下发送信息,但是请记住,如果“ http://XSSthissite”未启用CORS,则您无法从其他来源进行POST,这是由浏览器的安全性造成的
PS:您的第二个表单位于“ head”标签上方,将表单放在正文中是HTML上的一种很好的做法。也是“脚本”部分。 请参阅:Why scripts at the end of body tag