码迷,mamicode.com
首页 > 其他好文 > 详细

【靶场训练_DVWA】Command Execution

时间:2019-09-14 01:11:48      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:cut   rmi   BMI   方法   ping   mit   ==   comm   输入   

low

利用:

;ls ../../

技术图片

 

 

 源码分析:

<?php

if( isset( $_POST[ ‘submit‘ ] ) ) 
{
    //将ip对应的值复制给target
    $target = $_REQUEST[ ‘ip‘ ];
    
    if (stristr(php_uname(‘s‘), ‘Windows NT‘)) 
    { 
        //如果是winds就直接ping
    
        $cmd = shell_exec( ‘ping  ‘ . $target );
        echo ‘<pre>‘.$cmd.‘</pre>‘;
        
    } 
    else 
    { 
        //如果是Linux就默认ping 3个包
        $cmd = shell_exec( ‘ping  -c 3 ‘ . $target );
        echo ‘<pre>‘.$cmd.‘</pre>‘;
        
    }
    
}
?>
  • $_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得
  • php_uname — 返回运行 PHP 的系统的有关信息
  • stristr() 函数搜索字符串在另一字符串中的第一次出现
  • php_uname(‘s‘):返回操作系统名称

 

Medium

利用:

|| 或者  &;& 或者 &

技术图片

 

源码分析:

 就多了一点过滤,但是没过滤完整

<?php

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

    $target = $_REQUEST[ ‘ip‘ ];

    // 过滤了 &&,;命令分割符
    $substitutions = array(
        ‘&&‘ => ‘‘,
        ‘;‘ => ‘‘,
    );

    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );
    
    // 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>‘;
        
    }
}

?>

High

无能为力了Orz,只有诸如“数字.数字.数字.数字”的输入才会被接收执行.

<?php

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

    $target = $_REQUEST["ip"];
    
    /*
        stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。
     */
    
    $target = stripslashes( $target );
    
    
    // Split the IP into 4 octects
    $octet = explode(".", $target);
    
    // Check IF each octet is an integer
    if ((is_numeric($octet[0])) && (is_numeric($octet[1])) && (is_numeric($octet[2])) && (is_numeric($octet[3])) && (sizeof($octet) == 4)  ) 
    {
    
    // If all 4 octets are int‘s put the IP back together.
    $target = $octet[0].‘.‘.$octet[1].‘.‘.$octet[2].‘.‘.$octet[3];
    
    
        // 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>‘;
        
        }
    
    }
    else
    {
        echo ‘<pre>ERROR: You have entered an invalid IP</pre>‘;
    }
    
}

?>

 

【靶场训练_DVWA】Command Execution

标签:cut   rmi   BMI   方法   ping   mit   ==   comm   输入   

原文地址:https://www.cnblogs.com/chrysanthemum/p/11517770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!