前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[UUCTF 2022 新生赛]ez_rce

[UUCTF 2022 新生赛]ez_rce

原创
作者头像
Anime_Bucket
发布2024-03-05 10:23:51
1550
发布2024-03-05 10:23:51
举报

概括

这道题是一道RCE的赛题,里面用到了我们更换函数绕过的一个知识点。

过程

首先我们看到题目

代码语言:javascript
复制
//居然都不输入参数,可恶!!!!!!!!!
  
<?php
## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢????????????
if(isset($_GET['code'])){
    $code=$_GET['code'];
    if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){
        echo '看看你输入的参数!!!不叫样子!!';echo '<br>';
        eval($code);
    }
    else{
        die("你想干什么?????????");
    }
}
else{
    echo "居然都不输入参数,可恶!!!!!!!!!";
    show_source(__FILE__);
}

我们进行代码审计:

首先是用GET传入了一个code参数,然后是过滤了一些函数与关键字,发现过滤了echo,ls,tac,cat等,但是没有过滤反引号,和\等。

那我们看到这道题的思路吧

既然echo被过滤的话,我们可以使用printf函数

发现可以,然后我们也找到了flag,直接读取就完事了。

拿下这道题。

但是这道题应该还有很多种方法可以做,我们可以找找关于PHP的输出函数,比如说var_dump,printf_r函数都是可以代替echo的。

print_r:

var_dump:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概括
  • 过程
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档