天天看點

漏洞複現篇——指令執行漏洞

什麼是指令執行漏洞?

日常的網絡通路中,我們常常可以看到某些Web網站具有執行系統指令的功能,比如:有些網站提供ping功能,我們可以輸入一個IP位址,它就會幫我們去嘗試ping目标的IP位址,而我們則可以看到執行結果。

但是如果使用者沒有遵循網站的本意,而去輸入精心構造的指令,可能會對網站本身的功能邏輯産生逆轉,導緻讓目标網站執行惡意指令。

漏洞複現篇——指令執行漏洞

指令執行漏洞-分類

  1. web代碼層指令執行

    exec(“whoami”);

  2. 第三方元件指令執行漏洞

    WordPress中用來處理圖檔的ImageMagick元件

    JAVA中的指令注入漏洞(struts2/ElasticsearchGroovy等)

    vBulletin 5.x 版本通殺遠端代碼執行

  3. 系統層面指令執行漏洞

    MS08-067

    bash破殼漏洞

指令執行漏洞産生條件

指令注入漏洞産生原因有兩點
	1.使用者可以控制輸入的内容
	2.使用者輸入的内容被當作指令執行
           

指令執行常用函數

  • 反撇号

    ​ `` 輸出并傳回shell結果。

    用法:

    echo

    whoami

    ;
  • system()

    system() 輸出并傳回最後一行shell結果。

    system(‘whoami’)

  • passthru()

    隻調用指令,把指令的運作結果原樣地直接輸出到标準輸出裝置上。 相同點:都可以獲得指令執行的狀态碼

    passthru(‘whoami’)

  • shell_exec()

    通過 shell 環境執行指令,并且将完整的輸出以字元串的方式傳回

    shell_exec($_POST[‘system’]);

  • exec()

    不輸出結果,傳回最後一行shell結果,所有結果可以儲存到一個傳回的數組裡面。

    exec($_POST[‘system’],

    o

    u

    t

    p

    )

    ;

    r

    i

    n

    t

    r

    (

    output);print_r(

    output);printr​(output);

  • popen()
  • proc_open()
  • pcntl_exec()

常用系統指令與功能

  • Windows 下同時執行多條指令文法格式
漏洞複現篇——指令執行漏洞
  • Linux 下同時執行多條指令文法格式
漏洞複現篇——指令執行漏洞

實驗環境:

  • PHPstudy
  • 火狐浏覽器
  • DVWA靶場

模拟實驗:

低級别

源代碼

漏洞複現篇——指令執行漏洞
漏洞複現篇——指令執行漏洞

中級别

進階别

繼續閱讀