-命令执行
Posted g0rez
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-命令执行相关的知识,希望对你有一定的参考价值。
第一节 命令执行介绍
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
以上是关于-命令执行的主要内容,如果未能解决你的问题,请参考以下文章