漏洞原理远程命令执行

漏洞原理远程命令/代码执行

远程命令执行函数(Remote Command Execution Function)是指在一个网络环境中,通过远程执行命令来控制另一个计算机系统或设备的功能。

远程命令执行函数可以通过网络协议(如SSH、Telnet、RPC等)连接到目标设备,并向其发送命令。目标设备在接收到命令后会执行相应的操作,并将结果返回给控制设备。

远程命令执行函数通常用于远程管理、监控和控制系统,可以实现远程配置、远程维护和远程监视等功能。例如,系统管理员可以通过远程命令执行函数来远程执行系统配置命令、查看系统日志、重启系统等操作。

远程命令执行函数的安全性非常关键,因为任何人都可以通过网络连接到目标设备并执行命令。因此,必须采取适当的安全措施来限制访问权限和保护系统免受未授权的访问和恶意操作。

总之,远程命令执行函数是一种重要的网络技术,可以实现远程管理和控制系统的功能,但必须注意安全性和风险管理。

一 复习远程代码执行函数

  1. 输入验证:必须对用户输入的命令进行严格的验证和过滤,防止恶意代码注入。
  2. 系统更新:及时更新目标主机的操作系统和软件,以修复已知漏洞。
  3. 最小权限原则:远程命令执行应该以最小权限运行,减少攻击者能够执行的操作范围。
  4. 防火墙和入侵检测系统:设置合适的网络安全防护设备,监控和阻止潜在的攻击。
  5. 安全编码实践:开发人员应该使用安全编码实践来编写和测试应用程序,防止远程命令执行漏洞的产生。

1 http://127.0.0.1/websec/day03/cmd.php?code=phpinfo();

2 http://127.0.0.1/websec/day03/cmd.php?code=echo%2019-3

3 http://127.0.0.1/websec/day03/cmd.php?code=echo%2019*3

4 http://127.0.0.1/websec/day03/cmd.php?code=phpinfo();

5 http://127.0.0.1/websec/day03/cmd.php?code=phpinfo();

6 http://127.0.0.1/websec/day03/cmd.php?code=phpinfo

6 http://127.0.0.1/websec/day03/cmd.php?code=phpinfo

7 代码

Haskell 复制代码
<?php
header("content-type:text/html;charset=utf-8");

//1 获取用户的参数
//$code 表示一个用户参数  接收用户传输参数
$code = $_GET["code"];
//2 执行eval函数的信息
// eval("".$code.";");

//3 assent 函数 断言 调试代码使用的
// assert($code);
//4 正则查找 替换  RCE 漏洞
//  echo preg_replace('/test/e',$code,'你好我的世界我是替换函数 test');

// 4. call_user_func功能是调用其他函数,参数是函数名称,不是函数调用代码
echo call_user_func($code);

?>

二 远程命令执行函数

Haskell 复制代码
远程命令执行函数(Remote Command Execution Function)是指在一个网络环境中,通过远程执行命令来控制另一个计算机系统或设备的功能。

远程命令执行函数可以通过网络协议(如SSH、Telnet、RPC等)连接到目标设备,并向其发送命令。目标设备在接收到命令后会执行相应的操作,并将结果返回给控制设备。

远程命令执行函数通常用于远程管理、监控和控制系统,可以实现远程配置、远程维护和远程监视等功能。例如,系统管理员可以通过远程命令执行函数来远程执行系统配置命令、查看系统日志、重启系统等操作。

远程命令执行函数的安全性非常关键,因为任何人都可以通过网络连接到目标设备并执行命令。因此,必须采取适当的安全措施来限制访问权限和保护系统免受未授权的访问和恶意操作。

总之,远程命令执行函数是一种重要的网络技术,可以实现远程管理和控制系统的功能,但必须注意安全性和风险管理。

1 http://127.0.0.1/websec/day03/remote_cmd.php?cmd=whoami

2 http://127.0.0.1/websec/day03/remote_cmd.php?cmd=whoami

3 echo `$cmd`;

4 命令链接符

命令注入-命令的连接符【'&''&&''||''|'】的含义及其用法_命令拼接符-CSDN博客

Haskell 复制代码
<?PHP
header("content-type:text/html;charset=GBK");
//1 接收用户的参数的信息
$cmd=$_GET['cmd'];
// 执行承参数的一些信息
//  echo exec('<h1>'.$cmd.'</h1>');
// echo exec('<h1>'.$cmd.'</h1>');

echo shell_exec('ping 127.0.0.1&&whoami' .$cmd.'');

echo `$cmd`;

echo'whoam&&ipconfig';
echo"<br>";

echo'pwd&&ipconfig';
echo"<br>";

echo'pwd&ipconfig';
echo"<br>";

echo`whoami||ipconfig`;

echo"<br>";

echo`pwd||ipconfig`;

?>

三 RCE DVWA 靶场实操

3.1 ipconfig dir whoamil 命令执行。

3.2 修改编码的方式。

找到页面的配置文件:D:\phpStudy\WWW\DVWA\dvwa\includes\dvwaPage.inc.php

第302行,修改字符编码,由utf-8修改为GBK。

复制代码
  Header( 'Content-Type: text/html;**charset=GBK**' );  

四 pakchu 执行代码

RCE(remote command/code execute)概述

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

远程系统命令执行

一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口

比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上

一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 而,如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交"意想不到"的命令,从而让后台进行执行,从而控制整个后台服务器

现在很多的甲方企业都开始实施自动化运维,大量的系统操作会通过"自动化运维平台"进行操作。 在这种平台上往往会出现远程系统命令执行的漏洞,不信的话现在就可以找你们运维部的系统测试一下,会有意想不到的"收获"-_-

远程代码执行

同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。 不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。

因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

你可以通过"RCE"对应的测试栏目,来进一步的了解该漏洞。

4.1 evel()函数

4.2 ping dir `whoami||ipconfig`;

相关推荐
DevSecOps选型指南2 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
ABB自动化2 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
恰薯条的屑海鸥3 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
国科安芯3 小时前
抗辐照MCU在卫星载荷电机控制器中的实践探索
网络·嵌入式硬件·硬件工程·智能硬件·空间计算
阿部多瑞 ABU4 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
EasyDSS5 小时前
国标GB28181设备管理软件EasyGBS远程视频监控方案助力高效安全运营
网络·人工智能
玩转4G物联网5 小时前
零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
服务器·网络·物联网·网络协议·tcp/ip·http·fs100p
派阿喵搞电子5 小时前
Ubuntu下有关UDP网络通信的指令
linux·服务器·网络
搬码临时工6 小时前
外网访问内网服务器常用的三种简单操作步骤方法,本地搭建网址轻松让公网连接
服务器·网络·智能路由器
moongoblin6 小时前
行业赋能篇-2-能源行业安全运维升级
运维·安全·协作