buuctf web [RoarCTF 2019]Easy Calc

试了一下,数字可以计算,但字符被过滤了,打开源码看看

源码里提示,有waf,并且发现了一个新页面

访问新页面

show_source()

show_source()函数用于将指定文件的源代码输出到浏览器或者写入到文件中。

show_source(__FILE__);用于显示当前文件的源代码。

show_source()函数只能显示PHP文件的源代码,不能显示其他类型的文件。另外,由于安全原因,该函数默认情况下只能显示本地文件的源代码,无法显示远程文件的源代码。

foreach()

foreach 语句用于循环遍历数组。

每进行一次循环,当前数组元素的值就会被赋值给后一个变量(数组指针会逐一地移动) - 以此类推。

 

preg_match()

preg_match 函数用于执行一个正则表达式匹配。(查找前面内容是否在后面存在)

die()

die()函数输出一条消息,并退出当前脚本。

该函数是 exit() 函数的别名。

网页源码解释

<?php
error_reporting(0);
if(!isset($_GET['num'])){//从用户获取输入,如果无show_source(__FILE__);//显示当前页的源码
}else{$str = $_GET['num'];//有,将其值赋给str$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];//定义一个列表foreach ($blacklist as $blackitem) {//循环将blacklist的值赋给blackitemif (preg_match('/' . $blackitem . '/m', $str)) {//判断str中是否包含'/' . $blackitem . '/m'中的任意一项die("what are you want to do?");//是,输出what are you want to do?并退出}}eval('echo '.$str.';');//否,输出str
}
?> 

 验证一下是否判断正确

 

这是被防火墙防了?

在?后加个空格试试

ps:

PHP将查询字符串(在URL或正文中)转换为内部$_GET或关联数组$_POST。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。
例如:
/?foo=bar变成Array([foo]=> “bar”)。
/? foo=bar变成Array([foo]=> “bar”)。 //?号后有一个空格
/?+foo=bar变成Array([foo]=> “bar”)。 //?号后有一个+号

()里出现空格等,上列被过滤的字符时,返回what are you want to do?

这样会限制system的使用


需要更换命令进行绕过,使用var_dump()和scandir()函数,找到了类似于flag的f1agg

? num=var_dump(scandir(chr(47)))相当于? num=system(ls /)。chr(47)=" / "

ps:

scandir()函数返回指定目录中的文件和目录的数组。
scandir(/)相当于ls /
var_dump()相当于echo

ps:

chr(ascii)码对照表大全-CSDN博客

http://node4.buuoj.cn:26361/calc.php?%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

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

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

相关文章

ESP32-Web-Server编程-JS 基础 1

ESP32-Web-Server编程-JS 基础 1 概述 前述分别在 HTML 基础 和 CSS 基础 中介绍了 HTML、CSS 的基本内容。HTML 定义了网页中包含哪些对象&#xff0c;CSS 定义了对象的显示样式。JavaScript(LiveScript)是一种运行于客户端的解释性脚本语言&#xff0c;使 HTML 页面更具动态…

入金牌投资平台,学先进炒股技术,掌未来宝贵财富

钱是个好东西&#xff0c;它能让人享受到世间的甜&#xff0c;它能让人感受到万众瞩目的荣耀&#xff0c;它能让人得到一切该有的尊敬。可以这么说&#xff0c;没有人不爱钱。可是&#xff0c;君子爱财取之有道。对于正常的人而言&#xff0c;都只希望通过正规的渠道赚到尽可能…

IE工业工程不可不知的高效工具 – 视与视ECRS生产现场动作分析与改善软件

生产现场的作业效率如何改善&#xff1f; 如何有效优化一线生产者的动作&#xff0c;从而提升作业效率&#xff1f; 新进员工如何进行规范化的作业培训&#xff1f; 如何对班组、个人的生产效率进行定量分析与优化&#xff1f; 山积表、作业指导书、标准作业组合表、生产平…

原生DOM事件、react16、17和Vue合成事件

目录 原生DOM事件 注册/绑定事件 DOM事件级别 DOM0&#xff1a;onclick传统注册&#xff1a; 唯一&#xff08;同元素的(不)同事件会覆盖&#xff09; 没有捕获和冒泡的&#xff0c;只有简单的事件绑定 DOM2&#xff1a;addEventListener监听注册&#xff1a;可添加多个…

30.0/集合/ArrayList/LinkedList

目录 30.1什么是集合? 30.1.2为什么使用集合 30.1.3自己创建一个集合类 30.1.3 集合框架有哪些? 30.1.2使用ArrayList集合 30.2增加元素 30.3查询的方法 30.4删除 30.5 修改 30.6泛型 30.1什么是集合? 我们之前讲过数组&#xff0c;数组中它也可以存放多个元素。集合…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 6》(10)

《Linux操作系统原理分析之Linux 进程管理 6》&#xff08;10&#xff09; 4 Linux 进程管理4.6 Linux 管道4.6.1 管道的概念4.6.2 无名管道1.终端使用2.程序中使用 4.6.2 命名管道1.终端使用2.程序中使用 4 Linux 进程管理 4.6 Linux 管道 4.6.1 管道的概念 1、管道是 linu…

MEFLUT: Unsupervised 1D Lookup Tables for Multi-exposure Image Fusion

Abstract 在本文中&#xff0c;我们介绍了一种高质量多重曝光图像融合&#xff08;MEF&#xff09;的新方法。我们表明&#xff0c;曝光的融合权重可以编码到一维查找表&#xff08;LUT&#xff09;中&#xff0c;该表将像素强度值作为输入并产生融合权重作为输出。我们为每次…

docker基础快速入门:基础命令、网络、docker compose工具

docker基础命令快速入门 目录 docker基本命令docker 网络docker compose Docker介绍 Docker是一个虚拟环境容器&#xff0c;可以将你的开发环境、代码、配置文件等一并打包到这个容器中&#xff0c;并发布和应用到任意平台中。 Docker的三个概念 镜像 Docker镜像是一个特…

来自2023 TM Forum 数字领导力中国峰会的邀请函

峰会介绍 2023数字领导力中国峰会由tmforum和亚信科技联合主办。 数据驱动创新&#xff0c;数字塑造未来&#xff01;2023数字领导力中国峰会&#xff0c;立足技术和商业视角&#xff0c;聚焦讨论各行业如何依托数据治理、IT和网络转型&#xff0c;实现跨越式增长。 这里&am…

Elasticsearch初识--CentOS7安装ES及Kibana

文章目录 一&#xff0e;前言二&#xff0e;介绍1.Elasticsearch2.Kibana 三&#xff0e;ES安装1.下载安装包2.解压、配置2.1 解压2.2 配置 3.启动3.1增加用户3.2启动 4.解决资源分配太少问题5.启动成功 四&#xff0e;Kibana安装1.下载安装包2.解压、配置2.1 解压2.2 配置2.2 …

如何进行无代码开发?有哪些无代码开发工具和无代码软件开发平台?

无代码开发是指不写代码&#xff0c;通过可视化工具进行应用程序开发。无代码开发让非技术用户通过拖拽和选择等简单操作&#xff0c;就能快速创建应用程序。 如何学习无代码开发 随着科技的不断发展&#xff0c;新的技术和工具不断涌现&#xff0c;无代码开发就是其中一种。掌…

RT-DETR优化改进:IOU创新篇 | 引入MPDIou、WIoU、SIoU、EIoU、α-IoU,在不同场景实现涨点

🚀🚀🚀本文改进:引入MPDIou、WIoU、SIoU、EIoU、α-IoU,适配RT-DETR 🚀🚀🚀MPDIou、WIoU、SIoU、EIoU、α-IoU在各个场景都能够有效涨点 🚀🚀🚀RT-DETR改进创新专栏:http://t.csdnimg.cn/vuQTz 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; …