命令執行漏洞

2021-08-20 01:27:42 字數 1875 閱讀 5365

命令執行漏洞

命令執行漏洞是指攻擊者可以隨意執行系統命令。

os命令執行漏洞

部分web應用程式提供了一些命令執行的操作。例如,想要測試是否可以正常連線,那麼web應用程式底層就很可能去呼叫系統操作命令,如果此處沒有過濾好使用者輸入的資料,就很有可能形成系統命令執行漏洞

在windows中,"&&"的作用是將兩條命令連線執行,在linux系統下同樣適用

在測試dvwa提供的命令執行漏洞測試模組,輸入"www.xxser.com&&command"

系統將會執行輸入command。這就是命令執行漏洞

命令執行模型

php命令執行

php提供了部分函式用來執行外部應用程式,例如:system(),shell_exec(),exec(),passthru()

1. 命令執行

<?php

$host=$argv[1];

system("ping".$host);

?>

使用php.exe執行此檔案,命令為"php.exe cmd.php www.xxser.com",php將會呼叫系統ping命令。

攻擊者可能輸入"php.exe cmd.php "|net user""

2. **執行

php提供了乙個叫做eval()的函式,可以把字串按照php**執行,就是可以動態的執行php**。

使用eval需要注意:必須輸入的字串是合法的php**,並且以分號結尾

cmd.php中存在以下**:

<?php eval($_request['code'])?>

提交http://www,xxser,com/cmd.php?code=phpinfo();後,會執行phpinfo()

動態函式呼叫

<?php

function a()

function b()

$fun=$_request['fun'];

echo $fun(); //動態呼叫函式

?>

php解析器可以根據$fun的值來呼叫對應的函式。

輸入:/function.php?fun=phpinfo

$fun()所對應的函式即為phpinfo();

程式設計師還可能這樣傳遞引數

<?php

$fun=$_get['fun'];

$par=$_get['par'];

$fun($par);

?>

當提交url: /function.php?fun=system&par=net user

最終執行函式為: system("net user")

php函式**執行漏洞

在php中,**執行漏洞出現較多,像preg_replace(),ob_start(),array_map()等函式都存在**執行的問題,例

<?php

$arr=$_get['arr'];

$array=array(1,2,3,4,5);

$new_array=array_map($arr,$array);

?>

array_map()的作用是返回使用者自定義的函式處理後的陣列,現在輸入url:

/function.php?arr=phpinfo

發現,phpinfo**已被執行

更多php危險函式,可以參閱《高階php應用程式漏洞審核技術》

命令執行漏洞

原理 由於開發人員在編寫源 時,沒有對源 中可執行的特殊函式入口做過濾,導致客戶端可以提交一些cmd命令,並交由伺服器程式執行。導致攻擊者可以通過瀏覽器或者其他客戶端軟體提交一些cmd命令 或者bash命令 至伺服器程式,伺服器程式通過system eval exec等函式直接或者間接地呼叫cmd....

命令執行漏洞

目前已爆出的命令執行漏洞web應用程式給使用者提供指定的遠端命令操作介面,在呼叫這些函式時,將使用者的輸入作為系統命令引數拼接到命令列中,如果對使用者輸入的引數過濾不嚴格,就到造成命令執行漏洞。1.以當前 的許可權去執行系統命令。2.繼承web服務程式許可權,向伺服器寫檔案,讀取敏感資料等。3.sh...

CTF web命令執行漏洞

命令執行漏洞概念 當應用需要呼叫一些外部程式去處理內容的情況下,就會用到一些執行系統命令的函式。如php中的system,exec,shell exec等,當使用者可以控制命令執行函式中的引數時,將可注入惡意系統命令到正常命令中,造成命令執行攻擊。漏洞成因 指令碼語言優點是簡潔,方便,但也伴隨著一些...