欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP中怎么實(shí)現(xiàn)在線端口掃描功能

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)PHP中怎么實(shí)現(xiàn)在線端口掃描功能,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)PHP中怎么實(shí)現(xiàn)在線端口掃描功能,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都服務(wù)器托管,創(chuàng)新互聯(lián)提供包括服務(wù)器租用、雅安電信機(jī)房、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、主機(jī)域名等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:028-86922220

PHP4/5/7版本中提供了fsockopen方法,該方法用于打開(kāi)一個(gè)網(wǎng)絡(luò)連接或者一個(gè)Unix套接字連接,也可以用來(lái)進(jìn)行開(kāi)放端口掃描。

使用fsockopen()方法我們可以設(shè)計(jì)以下思路來(lái)實(shí)現(xiàn)開(kāi)放端口檢測(cè):

1.獲取目標(biāo)IP地址以及待掃描的端口列表。

2.使用For循環(huán)遍歷帶掃描的端口數(shù)組,講目標(biāo)IP地址與端口進(jìn)行拼接。

3.使用fsockopen()函數(shù)進(jìn)行探測(cè):通過(guò)Timeout參數(shù)進(jìn)行判斷:若超過(guò)1s無(wú)響應(yīng)則視作端口未開(kāi)放。

4.考慮到端口掃描功能的特殊性,可能會(huì)存在SSRF漏洞,因此需要對(duì)SSRF漏洞進(jìn)行防護(hù)。

開(kāi)放端口掃描實(shí)現(xiàn)出的代碼如下:

function getOpenPort($ip,$port){    $msg = array('Ftp','Telnet','Smtp','Finger','Http','Pop3','Location Service','Netbios-NS','Netbios-DGM','Netbios-SSN','IMAP','Https','Microsoft-DS','MSSQL','');    foreach ($port as $key => $value){        echo $value.'&ampnbsp&ampnbsp';        echo $msg[$key].'&ampnbsp&ampnbsp';        $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);        $result = $fp ? '<font color="#43CD80"><開(kāi)啟></font><br>' : '<font color="#FF6347"><關(guān)閉></font><br>';        echo $result;

針對(duì)于SSRF漏洞防護(hù)我們給出的方案是:創(chuàng)建IP黑名單,屏蔽內(nèi)網(wǎng)IP,防止掃描內(nèi)網(wǎng)IP地址

針對(duì)以上方案,我們寫(xiě)出的防護(hù)代碼如下:

$blackHostlist = array("172.", "10.", "localhost", "127.", "192.");foreach($blackHostlist as $blackHost){    if(strpos($ip, $blackHost) === 0){        echo '<script>alert("禁止掃描內(nèi)網(wǎng)地址!");</script>';        die();    }}

同時(shí)設(shè)計(jì)一個(gè)前端的表單來(lái)接受用戶傳送的參數(shù):

# index.html<form method="post" action="scan.php">目標(biāo)IP - IP Address:<input type="text" name="ip" id="domain"><br><br>掃描端口 - Ports:<input type="test" name="port" value="21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306"><br><br>開(kāi)始掃描 - Start:<input type="submit" value="點(diǎn)擊開(kāi)始掃描 - Scaning"></form>

最終的PHP后端代碼如下:

<?php    function getOpenPort($ip,$port){        $msg = array('Ftp','Telnet','Smtp','Finger','Http','Pop3','Location Service','Netbios-NS','Netbios-DGM','Netbios-SSN','IMAP','Https','Microsoft-DS','MSSQL','MYSQL');        foreach ($port as $key => $value){            echo $value.'&ampnbsp&ampnbsp';            echo $msg[$key].'&ampnbsp&ampnbsp';            $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);           $result = $fp ? '<font color="#43CD80"><開(kāi)啟></font><br>' : '<font color="#FF6347"><關(guān)閉></font><br>';            echo $result;    $url = $_POST['ip'];    $port = $_POST['port'];    $blackHostlist = array("172.", "10.", "localhost", "127.", "192.");    foreach($blackHostlist as $blackHost){        if(strpos($ip, $blackHost) === 0){            echo '<script>alert("禁止掃描內(nèi)網(wǎng)地址!");</script>';            die();        }    }    getOpenPort($ip,$port);

最終運(yùn)行效果如下(前端UI進(jìn)行了美化處理):

文章標(biāo)題:PHP中怎么實(shí)現(xiàn)在線端口掃描功能
轉(zhuǎn)載注明:http://chinadenli.net/article24/iopcje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)