RCE
分类
- 代码执行(执行脚本代码)
- 命令执行(执行系统命令)
插一句不相关的
所有漏洞形成的条件
可控变量,漏洞函数
poc是用来检测有没有漏洞的
exp是用来利用漏洞的
代码执行
举例
<?php
$code = $_GET['x'];
eval($code);//该函数就是将括号内容当作php语句执行
?>
结果
检测
- 白盒
- 代码审计
- 黑盒
- 漏扫工具
- 公开漏洞
- 手工看参数
命令执行
举例
<?php
$code=$_GET['x'];
echo system($code);//函数作用,把变量当作命令行命令执行
#linux在bash中,$( )与` `(反引号)都是用来作命令替换的。
?>
结果
实例
打开之后显示如下,可以看出来是php代码,将eval的内容在php在线平台运行一下。
运行结果如下,从中得知eval(命令行执行)要执行的为输入的变量a,咱给他值(从运行结果看出来是linux系统 echo是linux的写入函数)
我们看到了目录,到这里大家都懂了把,查看key_226611717819823.php文件
也不知道为什么cat查看不到,只能用tac查看,明明差不多。
命令注入执行分析
打开之后我们直接输入命令执行和用管道符|直接执行都不行
看来有验证,抓包改数据包,继续用管道符
结果不错有key了
继续改
结束
Webmin未经身份验证的远程代码执行
打开发现是登录框,既然不知道密码,那就抓包
发现明文传输,我们百度Webmin未授权访问漏洞,直接看人家的payload
我们根据它的改,id那个位置应该是命令位置,而且是linux系统(只有linux采用id,Windows不用)
从中看不到key,可能在根目录,不过我们的目的已经达到。
防御
- 禁用不安全的函数
- 防火墙防御(安全狗等)