作者:angel
前言
php是一種功能強大的Web開發語言。開發效率高,文法簡單,為動態網站量身定做,加強物件導向(向C++靠攏,與java搭了點邊),可惜單線程(這是至命弱點,據說PHP是用C\C++編寫的。),也能用C、C++、JAVA開發中介層,調用COM,伺服器維護難度小,故障少。
既然是為動態網站量身定做,所以註定不能開發出X-scan這樣的超強掃描器,不過如果要實現一些簡單的功能,還是綽綽有餘的。
連接埠掃描是我們最常用的踩點手段。如果在網吧這種地方,下載一個專門的掃描器又比較麻煩,如果利用現有的Web服務提供的連接埠掃描。那可真的是省了不少事。
下面我們就看看我寫的這個PHP連接埠掃描器的原始碼:
$youip=$HTTP_SERVER_VARS["REMOTE_ADDR"]; // 擷取本機IP地址
$remoteip=$HTTP_POST_VARS['remoteip']; // 擷取表單提交的IP地址
?>
連接埠線上檢測
if (!empty($remoteip)){
// 如果表單不為空白就進入IP地址格式的判斷
function err() {
die("對不起,該IP地址不合法
點擊這裡返回");
}
// 定義提交錯誤IP的提示資訊
$ips=explode(".",$remoteip);
// 用.分割IP地址
if (intval($ips[0])<1 or intval($ips[0])>255 or intval($ips[3])<1
or intval($ips[3]>255)) err();
// 如果第一段和最後一段IP的數字小於1或者大於255,則提示出錯
if (intval($ips[1])<0 or intval($ips[1])>255 or intval($ips[2])<0
or intval($ips[2]>255)) err();
// 如果第二段和第三段IP的數字小於0或者大於255,則提示出錯
$closed='此連接埠目前處於關閉狀態。www.cncms.com';
$opened='此連接埠目前處於開啟狀態!';
$close="關閉";
$open="開啟";
$port=array(21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306,3389);
$msg=array(
'Ftp',
'Telnet',
'Smtp',
'Finger',
'Http',
'Pop3',
'Location Service',
'Netbios-NS',
'Netbios-DGM',
'Netbios-SSN',
'IMAP',
'Https',
'Microsoft-DS',
'MSSQL',
'MySQL',
'Terminal Services'
);
// 通過IP格式的檢查後用數組定義各連接埠對應的服務名稱及狀態
echo "
echo "
echo "
echo "
echo "
\n";
\n";
您掃描的IP: color=red>".$remoteip." | \n";
\n";
\n";
echo "
echo "
echo "
echo "
echo "
echo "
echo "
// 輸出顯示的表格
for($i=0;$i
$fp = @fsockopen($remoteip, $port[$i], &$errno, &$errstr, 1);
if (!$fp) {
echo "
} else {
echo "
}
}
// 用for語句,分別用fsockopen函數串連遠程主機的相關連接埠,並輸出結果
echo "
echo "
\n";
\n";
連接埠 | \n";
服務 | \n";
檢測結果 | \n";
描述 | \n";
\n";
{
".$port[$i]." |
".$msg[$i]." |
align=center>".$close."
|
".$closed." |
\n";
".$port[$i]." |
".$msg[$i]." |
align=center>".$open."
|
".$opened." |
";
\n"; echo "繼續掃描>>> | \n";
echo "
\n";
echo "
echo "
echo "
echo "
echo "
\n";
\n";
Copyright © 2004 Security Angel Team[S4T] All Rights Reserved. | \n";
\n";
\n";
echo "
\n";
echo "\n";
echo "\n";
exit;
}
// 探測結束
echo "
echo "
echo "
echo "
echo "";
echo "
\n";
\n";
您的IP:".$youip." | \n";
\n";
\n";
// 如果表單為空白則顯示提交IP地址的表單
?>
Copyright © 2004 Security Angel Team[S4T] All Rights Reserved. |
後記
這個掃描器很簡單。就是用了一個數組來定義連接埠的相關資訊,原理就是用fsockopen函數串連,如果可以串連,就表示連接埠開啟,否則就是關閉。
最大的缺點就是PHP是單線程的,所以速度會很慢,這個是用方便、簡單作為代價的,其實寫這個代碼的就是想告訴大家,PHP並不僅僅用於動態網站的開發,也可以用於網路安全領域,往往太注意事物的本職工作,就會忽略其他方面的特點。