命令執行

0x01 命令執行漏洞原理

Web應用程序接收用戶輸入,並拼接到要執行的系統命令中執行。php

產生漏洞的緣由:git

1.用戶輸入未過濾或淨化;github

2.拼接到系統命令中執行。shell

0x02 PHP中的命令執行函數

system:執行外部程序,而且顯示輸出apache

exec:執行一個外部程序函數

shell_exec:經過 shell 環境執行命令,而且將完整的輸出以字符串的方式返回。工具

passthru:執行外部程序而且顯示原始輸出測試

popen:打開進程文件指針url

0x03 簡單的命令執行漏洞代碼

<?php
    echo "<pre>";
    if(isset($_GET["cmd"])){
      system($_GET["cmd"]);
    }
    echo "</pre>";
?>

0x04 Windows命令執行

示例代碼:spa

<?php
    echo "<pre>";
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping  $arg");
    }
    echo "</pre>";
?>

拼接符介紹:

&:不管前面的語句的真假,後面都會執行

&&:前面的語句爲假,後面的也不執行

|:直接執行後面的語句

||:前面的語句爲假,纔會執行後面的

0x05 Linux命令執行

示例代碼:

<?php
    echo "<pre>";
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping -c 4  $arg");
    }
    echo "</pre>";
?>

能夠用kali的apache2來搭建。

拼接符介紹:

;:分號是前面的語句執行完後,纔會執行後面的語句

|:管道符,顯示後面的語句的執行結果

||:前面的語句爲假,才執行後面的

&和&&也是同Windows的。

0x06 命令執行自動化工具commix

1.Commix是一個使用Python開發的漏洞測試工具,這個工具是爲了方便的檢測一個請求是否存在命令注入漏洞,而且對其進行測試,在其做者發佈的最新版本中支持直接直接導入burp的歷史記錄進行檢測,大大提升了易用性。

項目地址:https://github.com/stasinopoulos/commix

2.幫助信息:

kali自帶commix。

commix -h獲取幫助信息。

3.基本使用:

commix -u "url"

相關文章
相關標籤/搜索