Myluzh Blog

DVWA Command Injection 命令行注入分析与利用

发布时间: 2020-1-1 文章作者: myluzh 分类名称: NOTE 朗读文章


关于命令连接符介绍:
command1 && command2   先执行command1后执行command2
command1 | command2    只执行command2
command1 & command2    先执行command2后执行command1 
以上三种连接符在windows和linux环境下都支持
————————————————
LOW级别:
没有对任何进行过滤直接 192.168.1.1&&dir 成功执行
点击查看原图

Medium级别:

再次提交192.168.1.1&&dir提示:“Ping 请求找不到主机 192.168.1.1dir。请检查该名称,然后重试。
也就是我们的“&&”符号被过滤掉了,那就试试单个符号&,192.168.1.1&dir,成功执行
下面是部分代码:查看代码可以发现,这里只把&&根;替换成空,但是没有过滤掉&
   $substitutions = array( 
       '&&' => '', 
       ';'  => '', 
   ); 
点击查看原图

High级别:

192.168.1.1|dir 执行成功
下面是部分代码:查看代码可以发现,这里过滤掉的就比较多了,但是“”后面有个空格导致“|”并没有被过滤掉。
    // Set blacklist 
    $substitutions = array( 
        '&'  => '', 
        ';'  => '', 
        '| ' => '', 
        '-'  => '', 
        '$'  => '', 
        '('  => '', 
        ')'  => '', 
        '`'  => '', 
        '||' => '', 
    ); 
点击查看原图

Impossible级别:
过滤的很严格,对接受字符也进行了限制,不可能完成注入。

发表评论