第九章-命令执行
第一节 命令执行介绍
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
本文来自博客园,作者:guoyuxin3,转载请注明原文链接:https://www.cnblogs.com/guoyuxin3/p/16889575.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现