0x01: 命令执行代码分析

  1. 以下使用php代码,对知道目标进行Ping 命令。
  2. <?php
  3. echo "<pre>";
  4. $arg = $_GET['cmd'];
  5. if($arg){
  6. system("ping -c 4 $arg");
  7. }
  8. echo "<pre>";
  9. ?>

0x02: 命令执行漏洞思路

代码中拼接用户的输入并代码system函数执行,但是无法执行用户 的自定义命令
思路:截断输入,重新拼接。两条命令都输入并执行。

0x03: LInux 系统支持的管道符如下

  1. “;”:执行完前面的语句在执行后面的语句。 例如: ping 127.0.0.1 ; whoami
  2. | :显示后面的语句的执行结果。 例如 ping 127.0.0.1 | whoami
  3. || :当前面的语句执行出错时,执行后面的语句。 例如 ping 1 || whoami
  4. & 如果前面的语句为假直接执行后面的语句,前面的语句可真可假,例如: ping 127.0.0.1 & whoami
  5. &&" :如果前面的语句为假直接出错,也不执行后面的,前面的语句只能为真。 例如:ping 127.0.0.1 && whoami。

0x04: 命令注入工具介绍(Commix)

Commix 是一个使用Python 开发的漏洞测试工具,这个工具是为了方便的检测一个请求是否存在命令注入漏洞,并且对其进行测试,作者发布的最新版本中支持直接导入Burp的历史记录进行检测。

项目地址: http://github.com/stasinopoulos/commix
kali linux 自带commix可以直接使用
commix -h 获取帮助信息