DVWA学习-Command Execution-Level Low

Command Execution

译作命令执行

dvwa-Command Execution

该题目非常简单,即在输入框本应该输入IP或者域名执行ping,但是由于没有做足够的限制,导致用户可以任意构造该命令。

代码如下所示:

<?php 

if( isset( $_POST[ 'submit' ] ) ) { 

    $target = $_REQUEST[ 'ip' ]; 

    // Determine OS and execute the ping command. 
    if (stristr(php_uname('s'), 'Windows NT')) {  
     
        $cmd = shell_exec( 'ping  ' . $target ); 
        echo '<pre>'.$cmd.'</pre>'; 
         
    } else {  
     
        $cmd = shell_exec( 'ping  -c 3 ' . $target ); 
        echo '<pre>'.$cmd.'</pre>'; 
         
    } 
     
} 
?>

$cmd shell_exec‘ping  -c 3 ‘ $target ); 

此处的代码未对$_REQUEST[ ‘ip’ ];做任何的处理,并赋值给$target,导致$target可被用户任意控制,因此可以进行构造,执行任意系统命令。