Command injection就是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的

LOW

无论是Windows还是Linux,都可以使用&&连接多个命令

执行命令10.10.10.137&&net user

如果是Linux的话,我们还可以直接执行10.10.10.137&&cat /etc/shadow文件

Medium

Medium过滤掉了命令连接符&&,;,但是没有过滤&,采用了黑名单机制

&&   和 &  连接的区别

&&连接的俩个命令,先执行第一个,执行成功后才执行第二个,否则不执行。

&连接的俩个命令,无论第一个是否执行成功,都会执行第二个

看过源码,此级别只对&&和;转为空格,所以

10.10.10.137&;&net user

High

High级别完善了黑名单机制,附源码

<?php 

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

    // Get input 

    $target = trim($_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>"; 

} 

?> 

黑名单过滤了所有的非法输入,过滤了“|”,但是没有过滤“ |”

ping 10.10.10.137 |net user

impossiable

暂时无解

最新文章

  1. 如何在一个MyEclipse2014GA配置多个Tomcat8.X系列的应用服务器,同时运行
  2. python莫名其妙的yield, yield from, yield.send
  3. ue4 模块的构建和加载
  4. PERL/LEX/YACC技术实现文本解析--XML解析
  5. 如何自行处理写好的eclipse插件安装不生效
  6. Java7并发编程实战(一) 线程的管理
  7. Java中集合Set的用法
  8. 关于VS2013中Win32程序怎么修改图标
  9. servlet中cookie的使用
  10. 论文笔记之:Heterogeneous Image Features Integration via Multi-Modal Semi-Supervised Learning Model
  11. 黑白棋游戏 (codevs 2743)题解
  12. Apache Cloudstack Development 101 -- Data Access Layer
  13. python socket之tcp服务器与客户端demo
  14. 设计模式(八)装饰器模式Decorator(结构型)
  15. iterm2 快捷键
  16. 如何在Cocos2D游戏中实现A*寻路算法(三)
  17. Nginx lingering_close延迟关闭
  18. JAVA之经典算法
  19. 获取指定tag的代码
  20. Python 之 filecmp

热门文章

  1. OpenResty创造者
  2. RTC驱动程序分析
  3. jquery easyui 实战总结
  4. ASP.NET Core会议管理平台实战_1、开篇介绍
  5. iOS代码封装成.a文件(封装SDK)
  6. STL——stack
  7. Codeforces Round #269 (Div. 2) A,B,C,D
  8. VR头盔产品镜片评测
  9. Untiy一些方法前特殊标签记录
  10. Unity3D脚本:更改脚本和类名,且不破坏现有脚本引用的方法