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

[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

相关文章:

[RoarCTF 2019]Easy Calc

这题考查的是: 字符串解析特性目录读取文件内容读取 字符串解析特性详解:PHP字符串解析特性 ($GET/$POST参数绕过)(含例题 buuctf easycalc)_参数解析 绕过-CSDN博客 ascii码查询表:ASCII 表 | 菜鸟工具 …...

完美解决 git 报错fatal: Not a git repository (or any of the parent directories): .git

问题描述 错误提示是找不到.git文件,无法执行git指令,意思是 当前你要提交的文件夹中没有.git这个文件 解决方案 执行如下命令: git init...

electron无法设置自己的图标?渲染进程require报错?

electron无法设置自己的图标? 极有可能是图标太大,或者宽高不同 我推荐的网址icon转换 选着20x20一般就可以 渲染进程无法使用require?一直报错? webPreferences: {nodeIntegration: true, enableRemoteModule: true, contextIsolation: …...

vscode连接服务器与FileZilla上传到服务器

https://www.cnblogs.com/qiuhlee/p/17729647.html(这个是vscode连接服务器) 主机:就是服务器的主机号 使用者名称:比如ALmax的用户名 密码:比如ALmax的密码...

练习 1 Web EasySQL极客大挑战

CTF Week 1 EasySQL极客大挑战 BUUCTF 典中典复习 Web SQL 先尝试输入,找一找交互页面 check.php 尝试万能语句 a’ or true SQL注入:#和–的作用 get传参只能是url编码,注意修改编码,输入的字符串要改成url格式。 POST请求和…...

matlab生成模拟的通信信号

matlab中rand函数生成均匀随机分布的随机数,randn生成正态分布的随机数; matlab来模拟一个通信信号; 通信信号通过信道时,研究时认为它会被叠加上服从正态分布的噪声; 先生成随机信号模拟要传输的信号,s…...

Altair® SimLab® 以流程为导向的多学科仿真环境,可连接CAD 的多物理场工作流程

Altair SimLab 以流程为导向的多学科仿真环境,可连接CAD 的多物理场工作流程 SimLab 是一种以流程为导向的多学科仿真环境,能够精确分析复杂装配体的性能表现。包括结构、热和流体动力学在内的多物理场可以通过高度自动化的建模任务轻松设置,有助于大幅…...

Python爬虫-爬取B站番剧封面

本文是本人最近学习Python爬虫所做的小练习。如有侵权,请联系删除。 页面获取url 代码 import requests import os import re# 创建文件夹 path os.getcwd() /images if not os.path.exists(path):os.mkdir(path)# 当前页数 page 1 # 总页数 total_page 2# 自动…...

AI时代的产品文案秘籍:如何用AI提升效率

人工智能写作工具:解放双手,创作不停歇 在当前人工智能技术飞速发展的背景下,越来越多的个体已经开始利用这一AI写作工具,以显著提高自己的工作效率。这不仅标志着人工智能服务于人类的宏伟时代的到来,更是人人可用的创…...

前端架构: 脚手架通用框架封装之入口文件开发(教程一)

脚手架入口文件开发 创建脚手架项目: abc-cli $ mkdir abc-cli && cd abc-cli 全局安装 lerna, $ npm i -g lerna 基于 lerna 完成项目初始化 $ lerna init 基于 lerna 创建脚手架 cli $ lerna create cli一路回车 好现在生成了一个 cli 的模板,目前需要…...

吴恩达《机器学习》学习笔记

本笔记资料来源于 http://www.ai-start.com/ml2014/,该笔记来自于https://blog.csdn.net/dadapongi6/article/details/105668394,看了忘,忘了看,再看一遍。 时间统计:2024.2.29 5个番茄钟,从week1开始&…...

【FPGA】线性反馈移位寄存器(LFSR)的Verilog实现

什么是移位寄存器 移位寄存器:是指多个寄存器并排相连,前一个寄存器的输出作为下一个寄存器的输入,寄存器中存放的数据在每个时钟周期向左或向右移动一位。 下面的右移移位寄存器因为左侧没有有效输入,所以在第4个时钟周期&…...

yolov8涨点技巧,添加SwinTransformer注意力机制,提升目标检测效果

目录 摘要 SwinTransformer原理 代码实现 YOLOv8详细添加步骤 ymal文件内容 one_swinTrans three_swinTrans 启动命令 完整代码分享 摘要 Swin Transformer通过引入创新的分层注意力机制展现了其架构的独特性,该机制通过将注意力区域划分为块并在这些块内执…...

k8s初始化错误

报错详情: you can check the kubelet logs for further clues by running: ‘journalctl -u kubelet’ Alternatively, there might be issues with your Kubernetes configuration files or maybe the necessary ports are not opened. Check the status of …...

adb命名大全

1. 获取内部版本号: adb shell getprop ro.build.display.innerver 2. 获取按键值: adb shell getevent 3. 获取apk信息: adb shell dumpsys package 包名 ->info.txt 4. 获取应用包名:adb shell dumpsys window windows | gre…...

计算机发展史 (5)携手共赴难

就在痛苦艰难的时刻,孤独苦闷的巴贝奇意外地收到一封来信,写信人不仅 对他表示理解而且还希望与他共同工作。娟秀字体的签名,表明了她不凡的身份 ──伯爵夫人。 接到信函后不久,巴贝奇实验室门口走进来一位年轻的女士。她身披素雅…...

一键搞定简历设计!电子版简历制作指南3步走!

如今,随着无纸化办公趋势的流行,电子简历逐渐取代了纸质简历,成为我们最常用的简历设计格式。 然而,从纸质简历到电子简历后,对于非平面设计领域的学生来说,简历设计的难度可能再次超出了我们的能力范围。…...

tcpdump 常用用法

简要记录下tcpdump用法 监控某个ip上的某个端口的流量 tcpdump -i enp0s25 tcp port 5432 -nn -S 各个参数作用 -i enp0s25 指定抓包的网卡是enp0s25 -nn 显示ip地址和数字端口 ,如果只 -n 则显示ip,但是端口为services文件中的服务名 如果一个…...

Opencv实战(5)平滑处理与常见函数

平滑处理 Opencv实战: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是…...

音频PCM介绍与运用

音频PCM介绍与运用 什么是PCM PCM (Pulse Code Modulation) 是一种数字音频编码方式,将模拟声音信号转换为数字信号的过程。在 PCM 中,声音信号被采样并量化为离散的数值,以便于数字化处理和传输。 以下是 PCM 的主要特点: 采样…...

低质代码泛滥:根源与整治

一场席卷软件工程的质量风暴 在当今数字化浪潮下,代码正以前所未有的速度被生产出来。随着AI编程工具的普及,某些案例显示单月代码生成量激增十倍,从数万行跃升至数十万行。全球代码库的年增速超过百分之三十,与此同时&#xff0…...

从源码编译到驱动部署:Windows Qt环境下QMYSQL驱动缺失的完整修复指南

1. 问题背景与诊断 当你第一次在Windows上用Qt连接MySQL数据库时,那个刺眼的"Driver not loaded"错误提示是不是让你瞬间头皮发麻?别担心,这几乎是每个Qt开发者都会遇到的经典问题。我清楚地记得自己第一次遇到这个报错时&#xff…...

告别静态图表!用WPF LiveCharts 2.x 模拟实时数据监控面板(附完整MVVM源码)

工业级实时监控面板开发实战:WPF LiveCharts 2.x与MVVM深度整合 在工业自动化、服务器监控和物联网领域,实时数据可视化是决策支持系统的核心。传统静态图表已无法满足现代监控系统对即时反馈的需求,而WPF LiveCharts 2.x凭借其流畅的动画效果…...

SenseVoice Small实战教程:WebUI界面自定义语言偏好与快捷键设置

SenseVoice Small实战教程:WebUI界面自定义语言偏好与快捷键设置 1. 项目简介与核心价值 如果你经常需要把会议录音、访谈内容或者外语学习材料转换成文字,手动打字不仅耗时耗力,还容易出错。今天要介绍的这个工具,就是来解决这…...

高通Camera驱动(2)-- open与initialize的CHI扩展与资源管理

1. 高通Camera驱动中的open与initialize流程解析 第一次接触高通Camera驱动的开发者,往往会被复杂的调用链路和抽象层次搞得晕头转向。我在调试某款旗舰手机的多摄切换功能时,花了整整两周时间才理清从Framework到CHI扩展层的完整调用流程。让我们从最基…...

从启动到备份:手把手带你完成KingbaseES数据库的首次运维实战

从启动到备份:手把手带你完成KingbaseES数据库的首次运维实战 第一次接触KingbaseES数据库运维时,面对陌生的命令和操作流程,很多新手会感到无从下手。本文将模拟一位运维新手第一天接手Linux服务器上KingbaseES的完整工作流,带你…...

XUnity.AutoTranslator终极指南:3种方法让Unity游戏实时翻译无障碍

XUnity.AutoTranslator终极指南:3种方法让Unity游戏实时翻译无障碍 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一款专为Unity引擎游戏设计的实时翻译插件&#xf…...

MRIcroGL完整指南:医学图像3D可视化终极教程

MRIcroGL完整指南:医学图像3D可视化终极教程 【免费下载链接】MRIcroGL v1.2 GLSL volume rendering. Able to view NIfTI, DICOM, MGH, MHD, NRRD, AFNI format images. 项目地址: https://gitcode.com/gh_mirrors/mr/MRIcroGL MRIcroGL是一款强大的跨平台医…...

3分钟快速上手:CardEditor卡牌批量生成器终极使用指南

3分钟快速上手:CardEditor卡牌批量生成器终极使用指南 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/Card…...

【深度学习】【基础】Linear与Flatten层的协同工作原理

1. 从多维到一维:为什么需要Linear与Flatten层 想象你正在整理一个杂乱的书架。书架上摆满了各种尺寸的书籍(三维空间),而你需要把它们全部搬到一个狭长的走廊里(一维空间)。这个过程中,Flatte…...