DVWA系列(二)——使用Burpsuite进行Command Injection(命令行注入)

1. Command Injection简介

(1)命令执行概念

命令执行漏洞是指可以随意执行系统命令,属于高危漏洞之一,也属于代码执行范围内;PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一;就好比说一句话木马<?php @eval($_POST['cmd']);?>

(2)分类

  • 代码过滤不严或无过滤;
  • 系统漏洞造成的命令执行,bash破壳漏洞,该漏洞可以构造环境变量的值来执行具有攻击力的脚本代码,会影响到bash交互的多种应用,例如:http,ssh,dhcp;
  • 调用第三方组件,例如:php(system(),shell_exec(),exec(),eval()),Java(struts2),thinkphp(老牌的PHP框架);

(3) && 和 & 和 |

&&:command1 && command2

    第一个命令执行成功后才会执行第二个命令,否则不执行;

& :command1 & command2

    不管前面的命令是否执行成功,后面的命令都会执行;

| : command1 | command2

    只执行后面的命令,不执行前面的命令,而且是前面的命令执行成功后才会去执行后面的命令;

2. Command Injection(命令行注入)

实验环境

扫描二维码关注公众号,回复: 6123971 查看本文章

(1)Windows服务器:Windows  Server 2003,IP地址:192.168.37.128;

(2) 测试机:Windows7物理机(开启代理,代理服务器为burpsuit)

实验过程

安全级别:Low

(1)设置安全级别

(2)查看源码

(3)源码分析

stristr(string,search,before_search)

string 必需。规定被搜索的字符串。
search

必需。规定要搜索的字符串。

如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。

before_search

可选。默认值为 "false" 的布尔值。

如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。

php_uname(mode)

这个函数会返回运行php的操作系统的相关描述,参数mode可取值”a” (此为默认,包含序列”s n r v m”里的所有模式),”s ”(返回操作系统名称),”n”(返回主机名),” r”(返回版本名称),”v”(返回版本信息), ”m”(返回机器类型)。

可以看到,服务器通过判断操作系统执行不同ping命令,但是对ip参数并未做任何的过滤,从而导致了严重的命令注入漏洞;

(4)实验操作

命令行执行漏洞

127.0.0.1

127.0.0.1&&ipconfig

127.0.0.1&ipconfig

127.0.0.1| calc

127.0.0.1| netstat -ano

安全级别:Medium

(1)设置安全级别;

(2)查看源码;

(3)源码分析

Medium级别相比Low级别的代码,服务器端对ip参数做了一定过滤,把”&&” 、”;”替换为空;

Medium级别的过滤方式本质上采用的是黑名单机制,相比白名单依旧存在安全问题;

(4)实验过程

4.1> 尝试使用&&,被过滤;

4.2> 服务器过滤了&&,并未过滤&;

4.3> 服务器过滤了&&,并未过滤 | ;

绕过方法

4.4> 绕过方法1 : 采用&&&的方式;

4.5>  绕过方法2 : 采用&;&的方式;

安全级别:High

(1)设置安全级别

(2)查看源码

(3)源码分析

  '&'  => '',

  ';'  => '',

  '|  ' => '',   #“| ”后面有个空格;

  '-'  => '',

  '$'  => '',

  '('  => '',

  ')'  => '',

  '`'  => '',

  '||' => '

服务器对IP参数做了限制,过滤了如上字符,将如上字符都替换为空;

注:源码中是将“| ”替换为空,并不是“|”,所以可以采用“|”的方式绕过;

(4)实验过程

4.1> 尝试采用"&","|   "......等方式实现命令行注入;

绕过方式

4.2> 绕过方法“|”;

安全级别:Impossible

(1)设置安全级别;

(2) 查看源码;

(3)源码分析;

在Impossible级别中,代码加入了Anti-CSRF token,同时对参数ip进行了严格的限制,只有诸如“数字.数字.数字.数字”的输入才会被接收执行,杜绝了命令注入漏洞;

(4)实验过程;

猜你喜欢

转载自blog.csdn.net/qq_38684504/article/details/89508422