[RoarCTF 2019]Easy Calc1

news2024/9/25 17:19:53

看这个输入框,所以我猜测可能是sql注入,弹出了一个对话框,说算不来,说明可能存在过滤

最后发现只要传入字母都会触发弹窗,应该跟题目设定有关系,这只是一个简单的计算器而已

查看了一下源码,发现有一个传参,访问一下calc.php文件

访问后得到一串php源码

首先建立了一个黑名单列表,然后是一个foreach循环,用于遍历$blacklist数组中的每个元素。

在循环中,blackitem变量被赋值为blacklist数组中的当前元素。然后,循环体内的代码会执行,可以对$blackitem进行任何操作。

所以这段代码的作用是遍历黑名单数组,检查用户输入的$num是否包含在黑名单中的任何项。

如果str中没有匹配到黑名单中的任何项,它会使用eval()函数对str作为PHP代码执行,并将结果输出。

所以我这道题的思路就是利用num传参绕过黑名单,造成任意代码执行

但是这里要引入一个php函数,scandir() 函数

所以我们这里构造/?num=var_dump(scanfir ('/'));

但是直接说我没有权限访问

查看了wp得知可以利用php字符串的特性,因为本题是不允许传入字符的

我们在传参时在num前加入空格,这样本题的waf就找不到num这个变量了,因为现在的变量叫 num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行

成功造成回显,但是因为黑名单是将/和单引号过滤掉的,所以我们可以使用chr函数将ascii代替注入的字符/

因为我们不需要查看文件类型,所以还是换成print_r(scandir(chr(47)));

然后在回显中可以看见一个与flag相关的文件f1agg

那在php中读取指定文件,还要学习到一个file_get_contents() 函数

最后将file_get_contents() 函数指定的路径,利用chr住哪换后利用.拼接字符串就好

scandir() 函数

返回指定目录中的文件和目录的数组。

语法:
scandir(directory,sorting_order)

参数

描述

directory

必需。规定要扫描的目录。

sorting_order

可选。规定排列顺序。默认是 0,表示按字母升序排列。如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。

file_get_contents() 函数

file_get_contents() 把整个文件读入一个字符串中。

该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。

语法:
file_get_contents(path)

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

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

相关文章

联邦学习 (FL) 中常见的3种模型聚合方法

联邦学习 (FL) 中常见的3种模型聚合方法 联合学习 (FL) 是一种出色的 ML 方法,它使多个设备(例如物联网 (IoT) 设备)或计算机能够在模型训练完成时进行协作,而无需共享它们的数据。 “客户端”是 FL 中使用的计算机和设备&#x…

Java设计模式之一:装饰器模式

目录 一、什么是装饰器模式 二、装饰器模式如何使用 三、装饰器模式的优势和应用场景 一、什么是装饰器模式 装饰器模式是一种结构型设计模式,允许通过动态地将新功能添加到现有对象上,来扩展其行为或修改其外观,同时不改变其原始类的结构…

模型轻量化神器:3D格式转化工具HOOPS Exchange可将文件压缩小100倍!

​领先的CAD导入和导出库 使用用于CAD数据转换的HOOPS Exchange SDK将30多种CAD文件格式导入到您的应用程序中,具有对2D和3D CAD文件格式(包括 CATIA、SOLIDWORKS、Inventor™、Revit™、Creo、 NX™、Solid Edge 等,全部通过单个API实现。 …

TikTok品牌出海:打造独特内容,提升品牌影响力

随着社交媒体的迅猛发展,TikTok作为全球最热门的短视频平台之一,为品牌出海提供了独特的机遇。然而,要在TikTok上成功推广品牌,关键在于创造出引人注目、有吸引力的内容。本文Nox聚星将和大家探讨在TikTok上,什么样的内…

HTML写一个16:9自适应的页面

效果图&#xff1a; 页面可以按照窗口大小自适应变化&#xff0c;并且可以保持16:9 <!DOCTYPE html> <html><head><style>body {margin: 0;padding: 0;display: flex;justify-content: center;align-items: center;height: 100vh;}#box {width: calc(…

APP外包开发的用户行为分析工具

APP开发完成上线后&#xff0c;运营人员希望得到用户在使用APP过程中的行为数据&#xff0c;比如更喜欢哪个功能、停留时长、使用路径等指标数据&#xff0c;这对于产品的下一步改进非常重要。运营和产品人员有了这些数据才能更好的设计新功能。今天和大家分享这方面的工具&…

【动手学习深度学习--逐行代码解析合集】05softmax回归简洁实现

【动手学习深度学习】逐行代码解析合集 05softmax回归简洁实现 视频链接&#xff1a;动手学习深度学习–softmax回归简洁实现 课程主页&#xff1a;https://courses.d2l.ai/zh-v2/ 教材&#xff1a;https://zh-v2.d2l.ai/ 代码 net.apply()若不懂可参考: https://blog.csdn.…

第八章CAS策略

文章目录 JDK提供的原子类没有CAS之前引入CAS之后 CAS是什么CAS原理代码演示如何保证的原子性硬件级别保证 源码分析CAS底层原理&#xff1f;如果知道&#xff0c;谈谈你对UnSafe的理解例子atomicInteger.getAndIncrement()为什么安全 自定义原子引用CAS与自旋锁实现自旋锁 CAS…

SD卡可以数据恢复吗 SD卡数据恢复软件

随着数码设备的普及和存储容量的不断增加&#xff0c;SD卡已经成为我们常用的存储介质之一。在使用过程中&#xff0c;不可避免地会遇到SD卡数据丢失的情况&#xff0c;可能是因为误操作、格式化、病毒感染或物理损坏等。幸运的是&#xff0c;现在有许多专业的SD卡数据恢复软件…

Guava RateLimiter:原理、源码和思想

Guava RateLimiter&#xff1a;原理、源码和思想 三种限流算法计数器法漏桶算法令牌桶算法 RateLimiterRateLimiter的使用RateLimiter原理RateLimiter获取令牌获取令牌的基本流程获取令牌的详细源码解读 RateLimiter的两种限流器试验&#xff1a;感受两种限流器的区别SmoothBur…

Mysql 事务优化

事务的ACID特性: 原子性(Atomicity):当前事务的操作要么同时成功&#xff0c;要么同时失败。原子性由undo log日志来保证 一致性(Consistency):使用事务的最终目的&#xff0c;由业务代码正确逻辑保证 隔离性(lsolation):在事务并发执行时&#xff0c;他们内部的操作不能互相…

Ai 制作简单的iconfont字体图标

打开网址https://www.iconfont.cn/icons/upload?spma313x.7781069.1998910419.d059fa781 下载矢量图标设计模板,如图 打开下载的图标制作模版.ai文件 点击椭圆工具画一个大小为900*900的圆 点击文字工具&#xff0c;输入文字内容并调整为合适的大小&#xff0c;例610px …

欧科云链OKLink:2023年6月安全事件盘点

一、基本信息 2023年6月REKT和RugPull事件约造成约1000万美元损失&#xff0c;相比上月有显著下降&#xff0c;但安全事件发生数量依旧不减。其中被废弃的Atlantis Loans遭受治理攻击&#xff0c;造成的损失超250万美元&#xff0c;对该协议有过授权的用户需及时撤销授权。另外…

GRU、LSTM、注意力机制(第八次组会)

GRU、LSTM、注意力机制(第八次组会) 一、 GRU二、 LSTM三、 深度RNN、双向RNN四、 注意力机制一、 GRU 二、 LSTM 三、 深度RNN、双向RNN

机器学习实验-决策树、朴素贝叶斯、KNN模型的应用

实验 决策树-西瓜数据集基于基尼系数剪枝人体运动状态预测数据集西瓜数据集人体特征数据集 机器学习 数据集有两个&#xff0c;一个是西瓜数据集&#xff0c;另一个是人体特征数据集 决策树-西瓜数据集 基于信息熵准则进行划分选择的决策树算法的实现过程(不使用现有的机器学习…

有必要使用性能测试工具吗?

有必要使用性能测试工具吗&#xff1f;性能测试工具是一种帮助开发人员和测试人员评估应用程序、网站或系统性能的软件。这些工具主要用于测量响应时间、吞吐量、并发用户数、资源利用率等指标&#xff0c;以及发现系统瓶颈和瓶颈原因&#xff0c;那其作用意义有哪些&#xff1…

Flutter Linux desktop桌面版Build App流程

Flutter Linux desktop桌面版Build App流程 Flutter 是 Google推出并开源的移动应用开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App&#xff0c;一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口&#xff0c;开发者…

maven-mvnd 的使用

maven-mvnd是Apache Maven团队借鉴了Gradle和Takari的优点&#xff0c;衍生出来的更快的构建工具&#xff0c;是maven的强化版。 github地址&#xff1a;https://github.com/apache/maven-mvnd maven-mvnd 特性&#xff1a; 嵌入 Maven (所以不需要单独安装 Maven)&#xff…

【kubernetes系列】kubernetes之initcontainer初始化容器

概述 Init Container就是用来做初始化工作的容器&#xff0c;可以是一个或者多个&#xff0c;如果有多个的话&#xff0c;这些容器会按定义的顺序依次执行&#xff0c;只有所有的Init Container执行完后&#xff0c;主容器才会被启动。我们知道一个Pod里面的所有容器是共享数据…

日本PSE认证341种B类产品为非特定电器和材料类清单

以上清单为官方网站直译&#xff0c;可能存在差异&#xff0c;具体以官方为准。