[RoarCTF 2019]Easy Calc

这题考查的是: 字符串解析特性+目录读取+文件内容读取

字符串解析特性详解:PHP字符串解析特性 ($GET/$POST参数绕过)(含例题 buuctf easycalc)_参数解析 绕过-CSDN博客
ascii码查询表:ASCII 表 | 菜鸟工具 (jyshare.com)

用到的函数有:

print_r()   读取复杂对象,字符串、数组、对象等

chr()        将ascii码值转换为字符

scandir()  读取目录;成功返回文件数组;失败返回false;目录必须用引号包裹

file_get_contents()     将文件内容读取到字符串中;以二进制流读取;图片、字符数据都可用

全是知识盲区啊;又学到了新知识

打开题目发现是一个计算器界面;查看源码发现设置了waf;具体内容不知道什么情况

通过抓包测试发现了calc.php的一段源码信息;里面对输入的一些特殊字符进行了过滤

过滤的字符:空格 ' " \t \r \n ` [ ] $ ^

尝试输入num参数进行测试发现只能输入数字;字母和其他符号都不通过;应该是waf搞的鬼

这里彻底蒙圈了;知识匮乏了;看了大佬的wp发现可以利用字符串解析特性进行绕过

百度了一下php参数的字符串解析特性:1.去掉空白符  2.将某些字符转化为下划线

大佬的文章:PHP字符串解析特性 ($GET/$POST参数绕过)(含例题 buuctf easycalc)_参数解析 绕过-CSDN博客

构造payload:?%20num=phpinfo()

发现成功执行了phpinfo()函数;好了;waf已经绕过了;接下来就是绕过calc.php的过滤操作了

现在不知道flag在哪里;先要读取一下目录文件

由于' " 都被过滤了;所以用chr()进行输入绕过;chr(47)是/

构造payload:print_r(scandir(chr(47)))           读取根目录下的文件信息;然后打印该数组

找到了疑似存放flag的文件名为f1agg

注意:文件名中第二个是数字1;不是l;我在这儿耽搁了好一会儿才发现

构造payload:print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

成功读取到了flag

10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI智能雷达名片小程序平台版源码系统 带完整的安装代码包以及安装部署教程

在当今数字化快速发展的时代,人工智能(AI)已渗透到各个领域,尤其是在商务沟通领域,传统的名片已经不能满足现代商业的需求。小编给大家分享一款名为“AI智能雷达名片小程序平台版”的源码系统,该系统不仅提…

【Linux】将程序的输出显示到屏幕,同时写入到log文件

1. 将程序的输出显示到屏幕,同时写入到log文件 nohup python -u main.py 2>&1 | tee -a log.txt &nohup 放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进…

知乎引流秘籍:玩转知乎,掘金百万流量!

知乎,拥有3亿注册用户、日新增用户8万的超级内容平台,已然成为流量洼地。如何玩转知乎,掘金百万流量?这份1500字的实操指南,为你揭秘! 一、知乎的优势:流量大、长尾效应强 1. 流量大&#xff…

QA核心竞争力

核心竞争力的三个阶段 我们知道,不同的工作和任务所需要的核心能力不同,因而核心竞争力也就不相同。QA 的入门门槛比较低,这也是 QA 这个群体产生恐慌和焦虑的主要原因。这个群体所涉及的技术面和技能栈非常广,所以整个职业生涯的…

46-全排列(回溯算法)

题目 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nu…

商业银行移动支付发展探析

一、支付交换标准的迭代      银行卡支付交换标准基于ISO 8583-1987《产生报文的金融交易卡交换报文规范》为发展基础, 经过30年的产品及应用变革, 支撑交换标准整体框架的数据格式日益显现其弊端。新型与传统业务交织, 衍生出多个技术标…

提升智能客服机器人的语义理解能力:理解用户的语义和意图

智能客服机器人的发展已经成为现代服务业的一大亮点。它们不仅能够提供724小时不间断的服务,而且能够处理大量的用户请求,大大提高了服务效率。然而,尽管智能客服机器人的技术已经取得了显著的进步,但其语义理解能力仍有待提高。为…

List去除重复数据的五种方式

1、使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 ArrayList 删除重复数据的最佳方法。LinkedHashSet 在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 Java 示例使用 LinkedHashSet 删除 arraylist 中的重复项。在给定的示例…

【Linux杂货铺】调试工具gdb的使用

目录 🌈前言🌈 📁背景介绍 📁 使用 list [行号] / [函数名] run/r break/b [行号] / [函数名] info break disable break enable break delete break [断点编号] next/n step/s continue/c finish print/p [变量…

06 vim工具

目录 概念模式基本操作配置 1. 概念 vim是一个历史悠久的,多模式的编辑器,是vi的升级版。和ide不同,编辑器仅能编写文本,不能运行代码,现阶段的代码编译的各个过程会分开按步骤执行 2. 模式 vim有很多种模式,想要编…

方格分割644--2017蓝桥杯

1.用dfs解决,首先这题的方格图形就很像一个走迷宫的类型,迷宫想到dfs,最中心点视为起点,起点有两个小人在这个方格里面对称行动,直到走出迷宫(一个人走出来了另一个人就也走出来了,而走过的点会…

Vmware Esxi 部署Mac OS虚拟机

Vmware Esxi在创建虚拟机的时候是有Mac OS选项的,但是实际创建时,选择ISO开机后一直反复引导,是有问题的,原因是需要先解锁,需要在ESXI主机上修改配置并重启。 首先找到管理-服务-TSM-ssh,点击启动&#x…

华纳云:linux中tftp命令使用无效怎么解决

如果在Linux中使用TFTP命令时遇到问题,可能是由于以下几种原因导致的,你可以尝试以下方法解决: 检查TFTP服务器是否正确配置:首先确保你正在连接的TFTP服务器已经正确配置并正在运行。你可以使用网络工具(如ping命令)检查与TFTP服…

★【二叉搜索树(中序遍历特性)】【 ★递归+双指针】Leetcode 98. 验证二叉搜索树

★【二叉搜索树(中序遍历特性)】【 ★递归双指针】Leetcode 98. 验证二叉搜索树 二叉搜索树 98. 验证二叉搜索树解法1 笨 中序递归遍历为一个数组 然后判断数组是不是升序排列就可以★解法2 不使用数组 递归法 ---------------🎈&#x1f38…

【力扣】无重复字符的最长子串,滑动窗口 + 哈希集合

无重复字符的最长子串原题地址 方法一:滑动窗口(双指针) 哈希集合 考虑找出字符串s的所有的无重复字符的子串,求出这些子串长度的最大值即可。 使用下标 [left,right] 来维护子串。我们只需要找到每一个 left 对应的所有 righ…

php PhpSpreadsheet 读取日期变数字问题解决

问题描述: 使用PhpSpreadsheet 读取表格数据,日期格式读取后变成数字,如下图: 解决方案: $cell $sheet->getCell(H . $row)->getValue(); $toTimestamp \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimes…

腾轩科技传媒探讨网络整合营销推广的策略和效果

在当今高度信息化的商业环境中,整合营销推广(IMC)已经成为了品牌营销策略的核心。它旨在通过多种渠道和平台,将一致、连贯的品牌信息传达给目标受众,从而增强品牌知名度和忠诚度。腾轩科技传媒将深入探讨整合营销推广的…

【airtest】自动化入门教程(一)AirtestIDE

目录 一、下载与安装 1、下载 2、安装 3、打开软件 二、web自动化配置 1、配置chrome浏览器 2、窗口勾选selenium window 三、新建项目(web) 1、新建一个Airtest项目 2、初始化代码 3、打开一个网页 四、恢复默认布局 五、新建项目&#xf…

模拟算法题练习(一)

模拟算法介绍: 模拟算法通过模拟实际情况来解决问题,一般容易理解但是实现起来比较复杂,有很多需要注意的细节,或者是一些所谓很“麻模“的东西。 模拟题一般不涉及太难的算法,一般就是由较多的简单但是不好处理的部…

【算法】最小生成树—Prim算法与Kruskal算法

Prim算法和Kruskal算法都是解决最小生成树问题的经典算法。最小生成树是原图的最小连通子图,它包含原图的全部结点,且保持图连通的所有边代价和最小。一个连通图可能有多个最小生成树。 一、Prim算法 含义 Prim算法,也被称为普里姆算法&…