第九章-命令执行

第一节 命令执行介绍

1.1 命令执行漏洞原理

命令执行漏洞定义:Web应用程序接收用户输入,拼接到要执行的系统命令中执行。

产生原因:

1、用户输入未过滤或净化;

2、拼接到系统命令中执行。

1.2 PHP下命令执行函数

在PHP中具有执行系统命令功能的函数如下:

1、system 2、exec 3、shell_exec 4、passthru 5、popen 6、proc_popen

提示:某些情况下,要注意存在以上函数的php文件,有可能是Webshell。

1.3 命令执行漏洞代码分析

以下给出一个存在命令执行漏洞的简单代码。

参考链接:http://www.php.net/manual/zh/function.system.php

<?php
    echo "<pre>";
	if(isset($_GET["cmd"])){
		system($_GET["cmd"]);

    }
    echo "</pre>";

?>

1.4 命令执行漏洞案例演示

在Windows下执行 ipconfig来获取网卡信息。

第二节 windows命令执行漏洞利用技巧

2.1 命令执行示例代码分析

以下使用PHP代码,对指定目标执行Ping命令。

<?php
    echo “<pre>”;
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping  $arg");
    }
    echo “</pre>”;
?>

2.2 命令执行漏洞利用思路

代码中拼接用户的输入并代码system函数执行,但是无法直接执行用户的自定义命令。

思路:

截断输入,重新拼接。两条命令都输入并执行。

2.3 命令执行漏洞拼接符介绍

在Windows系统下的 cmd命令中,有以下一些截断拼接符。

&前面的语句为假则直接执行后面的

&&前面的语句为假则直接出错,后面的也不执行

|直接执行后面的语句

||前面出错执行后面的

正常情况下 :

ping 127.0.0.1

ping 111 & ipconfig

ping 127.0.0.1 && ipconfig

ping 127.0.0.1 | ipconfig

ping 111 || ipconfig

2.4 命令执行漏洞利用演示

使用拼接符从而利用命令执行漏洞执行 ipconfig命令

第三节 Linux命令执行漏洞利用技巧

3.1 命令执行示例代码分析

以下使用PHP代码,对指定目标执行Ping命令。

<?php
    echo “<pre>”;
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping -c 4  $arg");
    }
    echo “</pre>”;
?>

3.2 kali Linux测试环境搭建

启动apache服务 , service apache2 start

拷贝代码到 /var/www/html/目录下的一个文件中。

3.3 命令执行漏洞拼接符介绍

在Linux系统下的shell命令中,有以下一些截断拼接符。

在Linux上,上面的;也可以用|、||代替

;前面的执行完执行后面的

|是管道符,显示后面的执行结果

||当前面的执行出错时执行后面的

3.4 命令执行漏洞利用演示

使用拼接符从而利用命令执行漏洞执行 ifconfig命令

http://192.168.1.106/cmd3.php?cmd=127.0.0.1;ifconfig

第四节 命令执行自动化工具基本使用

4.1 Linux命令拼接符补充

在Linux shell下的命令拼接符还有 & &&

其中 & 无论前边语句真假都会执行 && 只有前边语句为真,才会执行后边语句。

4.2 commix工具介绍

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

项目地址:https://github.com/stasinopoulos/commix

4.3 commix帮助信息简要介绍

在Kali linux自带了commix可以直接使用。

commix -h 获取帮助信息。

4.4 commix工具基本使用

commix -u http://192.168.1.106/cmd3.php?cmd=127.0.0.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值