web命令執行漏洞

來源:互聯網
上載者:User

標籤:命令執行漏洞


一,什麼是命令執行漏洞:


  應用有時需要調用一些執行系統命令的函數,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,當使用者能控制這些函數中的參數時,就可以將惡意系統命令拼接到正常命令中,從而造成命令執行攻擊,這就是命令執行漏洞。



二,利用條件:


 1,應用調用執行命令的函數

 2,將使用者輸入作為系統命令的參數拼接到命令中

 3,沒有對使用者輸入過濾或者過濾不嚴格


三,漏洞危害:

 1,攻擊者可以執行命令擷取想要的資訊

 2,攻擊者可以拿下伺服器等



四,例子:


例子一:

代碼:

<?php    $arg = $_GET[‘cmd‘];        if ($arg) {        system("$arg");    }?>


訪問:http://127.0.0.1/mingling/simple1.php?cmd=ping%20127.0.0.1

也就是執行了“ping 127.0.0.1”命令

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/03/D5/wKiom1mhSCqRquRRAABG8Ph3pVk375.png" title="2017-08-26_180604.png" alt="wKiom1mhSCqRquRRAABG8Ph3pVk375.png" />


例子二:

<?php    $arg = $_GET[‘cmd‘];        if ($arg) {        system("ping -c 3 $arg");    }?>


訪問:http://192.168.25.107/simple2.php?cmd=127.0.0.1;pwd

執行了pwd命令


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/A2/86/wKioL1mhSpKwchuFAABd3q5AflU285.png" title="2017-08-26_181626.png" alt="wKioL1mhSpKwchuFAABd3q5AflU285.png" />






例子三:

<?php    $arg = $_GET[‘cmd‘];           if ($arg) {        system("ls -al \"$arg\"");    }      ?>

訪問:http://192.168.25.107/simple3.php?cmd=/home%22;ifconfig%22

執行了ifconfig命令

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/03/D6/wKiom1mhS_PyLrHyAACEeRHaYWU317.png-wh_500x0-wm_3-wmp_4-s_23229392.png" title="3.png" alt="wKiom1mhS_PyLrHyAACEeRHaYWU317.png-wh_50" />


例子四:

<?php eval($_REQUEST[‘code‘]);?>

當訪問:http://192.168.25.107/simple4.php?code=phpinfo();

注意後面的分號,當然後面也可以跟一句話木馬。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/A2/86/wKioL1mhTSOCUcCpAAB08Yga69Y420.png-wh_500x0-wm_3-wmp_4-s_660029195.png" title="4.png" alt="wKioL1mhTSOCUcCpAAB08Yga69Y420.png-wh_50" />


例子五:

<?php    $fun = $_GET[‘fun‘];    $par = $_GET[‘par‘];    $fun($par);?>


當訪問:http://192.168.25.107/simple5.php?fun=system&par=whoami

其實就相當於是執行了:

system("whoami")

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/03/D6/wKiom1mhTmXy7ri_AAAtxYR739k204.png-wh_500x0-wm_3-wmp_4-s_3769725770.png" title="3.png" alt="wKiom1mhTmXy7ri_AAAtxYR739k204.png-wh_50" />



五:修複方案:

  1. 盡量少用執行命令的函數或者直接禁用

  2. 參數值盡量使用引號包括

  3. 在使用動態函數之前,確保使用的函數是指定的函數之一

  4. 在進入執行命令的函數/方法之前,對參數進行過濾,對敏感字元進行轉義

如:

<?php    $arg = $_GET[‘cmd‘];    // $arg = addslashes($arg);    $arg = escapeshellcmd($arg);  //拼接前就處理    if ($arg) {        system("ls -al ‘$arg‘");    }?>


escapeshellcmd( )逃脫字串中任何可能用來哄騙(trick)shell命令的字串,此函數用來確定資料傳送到exec( )或system( )之前,由使用者輸入的任何資料已經逃脫,標準的用法如下

Example :<?php   system(EscapeShellCmd($cmd));?>


六:參考連結:


1,http://haojiawei.xyz/2017/03/15/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/

2,http://www.jianshu.com/p/1e706f13b088


650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/A2/86/wKioL1mhT0LBqM-9AAQF1aT1ixQ725.png" title="打賞.png" alt="wKioL1mhT0LBqM-9AAQF1aT1ixQ725.png" />

本文出自 “天道酬勤” 部落格,請務必保留此出處http://tdcqvip.blog.51cto.com/12995943/1959586

web命令執行漏洞

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.