国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

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

發(fā)布時(shí)間:2021-09-14 11:25 來(lái)源:億速云 閱讀:0 作者:Leah 欄目: 網(wǎng)絡(luò )安全

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

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


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

  • 1.獲取目標IP地址以及待掃描的端口列表。

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

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

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

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

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;

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

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

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

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

# index.html
<form method="post" action="scan.php">
目標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("禁止掃描內網(wǎng)地址!");</script>';
            die();
        }
    }
    getOpenPort($ip,$port);

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


免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

php
最近日本中文字幕免费完整| 久久久99精品免费观看| 乌克兰少妇xxxx做受野外| 蜜桃无码AV一区二区| 国产午夜精华无码网站| 风韵多水的老熟妇|