RCE

RCE英文全称:remote command/code execute(远程命令/代码执行漏洞)

分为远程命令执行ping和远程代码执行evel。

漏洞出现的原因:没有在输入口做输入处理

  • 一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP
  • 提交后,后台会对该IP地址进行一次ping测试,并返回测试结果
  • 其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞

eval直接执行

题目没有任何过滤时,直接传参执行即可

  • 查看根目录 /?code=system(“ls”);
  • 查看上级目录 /?code=system(“ls /”);
  • 查看文件 /?code=system(“cat FILENAME”);

文件包含

strpos()

作用:主要是用来查找字符在字符串中首次出现的位置。 int strpos(string $haystack , mixed $needle [, int $offset = 0 ])

php://input

php:// 访问输入/输出流

php://input 可以访问请求的原始数据的只读流

  • 可以接收post请求作为输入流的输入,将请求作为PHP代码的输入传递给目标变量,以达到以post 的形式进行输入的目的。

CTFHUB

  • 查看phpinfo,又以下字段,证明是可以使用php://input的。

GET传

/?file=php://input

POST传

<?php system(‘…’)?>

php://filter