RCE(remote command/code execute) 漏洞, 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码, 从而控制后台系统.
一般出现这种漏洞, 是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口, 比如我们常见的路由器, 防火墙, 入侵检测等设备的 web 管理界面上. 一般会给用户提供一个 ping 操作的 Web 界面, 用户从 Web 界面输入目标 IP, 提交后, 后台会对该 IP 地址进行一次 ping 测试, 并返回测试结果. 如果设计者在完成该功能时, 没有做严格的安全控制, 则可能会导致攻击者通过该接口提交 "意想不到" 的命令, 从而让后台进行执行, 从而控制整个后台服务器. 现在很多企业都开始实施自动化运维, 大量的系统操作会通过 "自动化运维平台" 进行操作, 在这种平台上往往会出现远程系统命令执行的漏洞.
在 Pikachu 漏洞平台里有两个示例: ping 和 evel, 我们分别看一下:
一, exec "ping"
在对话框中, 我们输入 127.0.0.1, 就会发现服务器执行了 ping 127.0.0.1, 并将结果返回:
这里我们可以想到是否能够在 ping 的命令后加入其它命令, 由于我们的实验环境是 Windows 机器, 所以我们输入 127.0.0.1 & ipconfig 试一下:
从上图我们发现, 我们后面跟着的命令被执行了. 所以后面我们可以在后面拼接其它恶意命令来执行, 这里我们就不再演示了. 最后我们看一下源代码是什么样的, 在 rce_ping.PHP 中:
可以看到就是一个简单的拼接.
二, exce "eval"
如果熟悉一句话木马的同学应该对 eval 函数有了解.
eval() 函数把字符串按照 PHP 代码来计算. 该函数使用有比较多的细节, 这里我们就介绍了.
下面我们测试一下平台中的示例, 我们输入 phpinfo();
在这里可以看到写入的 PHP 代码被执行了.
来源: http://www.bubuko.com/infodetail-3502166.html