简介
RCE(remote command/code execute,远程命令执行)漏洞,一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器
原理
以PHP为例,system、exec、shell_exec、passthu、popen、proc_popen等函数可以执行系统命令。当我们可以控制这些函数的参数时,就能运行我们想运行的命令,从而进行攻击。
攻击
Windows管道符
管道符 | 作用 | 举例 |
---|---|---|
直接执行后面的语句 | ||
& | 前面的语句为假则执行后面的语句 | ping 127.0.0.1&whoami |
&& | 前面的语句为假,直接出错,前面的语句为真,执行后面的语句 | ping 127.0.0.1&&whoami |
一般我们是需要用后面的语句来进行攻击,所以首选|,如果被过滤了在考虑其他,下面的例子很简单,在实战篇我