CTF-WEB进阶与学习
PHP弱类型
= = =在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
= =在进行比较的时候,会先将字符串类型转化成相同,再比较
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值
并且比较按照数值来进行
转化规则
字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。
e和E表示科学计数法

md5绕过
弱类型比较绕过
弱类型比较绕过
题目:
$a!=$b
md5($a)==md5($b)
解题思路:
找到不同$a和$b,两者的md5值均为0e开头的形式

null值绕过
题目:
$a=$b
md5($a)===md5($b)
解题思路:
使$a和$b为两个不同的数组 (array),
两者的md5值均为null。

碰撞绕过
题目:
(string)$a!=(string)$b
md5($a)===md5($b)
解题思路:
md5碰撞,找到两个不同的数据,但是两者的md5值相同。

习题讲解
第一关:
intval是取整的意思
在php7中intval(‘2e4’) 等于20000 而intval(‘2e4’+1)等于20001 这个是正常的值
在php5中intval(‘2e4’) 等于2 而intval(‘2e4’+1)等于20001 这个是因为php5有bug
我们通过查看http请求报文get可以看到往下移可以看到他使用的协议是php5
第二关:
他判断我们也没有传入md5的值有的话他会把我们传入的这个值赋值给md5然后判断我们赋值的md5是否等于我们当前值进行md5运算后的值
这里我们可以通过= =是不完全比较我们可以通过0e类型来绕过
第三关:
我们可以看到我们输入一个get_flag 他一眼是吧我们传入的这个参数给get_flag
strstr是判断这个变量里面有没有空格前面加个!那就是里面这个参数不能有空格
他对我们这个变量进行str_irplace 这个函数是php中替换的函数如果我们变量里面有第一个cat他会进行替换成wctf2020 system是输出get_flag这个值就是我们要的东西
那我们就用ls查看文件发现我们要的文件是flag.php ${IFS}是空格的意思
more${IFS}flag.php



相关文章:
CTF-WEB进阶与学习
PHP弱类型 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 在进行比较的时候,会先将字符串类型转化成相同,再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值 并且…...
C++初阶 类和对象(补充)
目录 一、友元 1.1什么是友元? 1.2如何使用友元? 1.3使用友元 1.4使用友元注意事项 二、初始化列表 2.1什么是初始化列表? 2.2为什么要有初始化列表? 2.3使用初始化列表 2.4注意事项 一、友元 1.1什么是友元? 友元是一…...
《HTML 简易速速上手小册》第2章:HTML 的标签和元素(2024 最新版)
文章目录 2.1 文本格式化标签(🎩✨📜 网页的“时尚搭配师”)2.1.1 基础示例:一篇博客的格式化2.1.2 案例扩展一:产品介绍页面2.1.3 案例扩展二:个人简历 2.2 链接和锚点(Ὢ…...
2024斋月大促跨境卖家准备指南
市场覆盖西欧、中东、东南亚、北非地区的跨境电商卖家注意了,2024年的斋月即将开启,较往年日期,今年提前了10天左右,斋月的第一天预测在3月11日星期一到来。 根据Google搜索数据可知,目前已经进入高频“斋月”搜索期&…...
【C++干货铺】哈希结构在C++中的应用
目录 unordered系列关联式容器 unordered_map unordered_map的接口说明 1.unordered_map的构造 2. unordered_map的容量 3. unordered_map的迭代器 4. unordered_map的元素访问 5. unordered_map的查询 6. unordered_map的修改操作 7. unordered_map的桶操作 底层结构 …...
蓝桥杯算法赛第4场小白入门赛强者挑战赛
蓝桥杯算法赛第4场小白入门赛&强者挑战赛 小白1小白2小白3强者1小白4强者2小白5强者3小白6强者4强者5强者6 链接: 第 4 场 小白入门赛 第 4 场 强者挑战赛 小白1 直接用C内置函数即可。 #include <bits/stdc.h> using namespace std;#include <bits…...
【每日一题】6.LeetCode——轮转数组
📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢…...
Java编程练习之类的封装2
1.封装一个股票(Stock)类,大盘名称为上证A股,前一日的收盘点是2844.70点,设置新的当前值如2910.02点,控制台既要显示以上信息,又要显示涨跌幅度以及点数变化的百分比。运行效果如下:…...
Banana Pi BPI-R4开源路由器开发板快速上手用户手册,采用联发科MT7988芯片设计
介绍 Banana Pi BPI-R4 路由器板采用 MediaTek MT7988A (Filogic 880) 四核 ARM Corex-A73 设计,4GB DDR4 RAM,8GB eMMC,板载 128MB SPI-NAND 闪存,还有 2x 10Gbe SFP、4x Gbe 网络端口,带 USB3 .2端口,M.2…...
C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀
C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀 使用OpenCV可以对彩色原始图像进行基本的处理,涉及到5个常用的处理: 灰度化 模糊处理 Canny边缘检测 膨胀 腐蚀 1、测试图像lena.jpg 本例中我们采用数字图像处…...
蓝桥杯2024/1/31----第十届省赛题笔记
题目要求: 1、 基本要求 1.1 使用大赛组委会提供的国信长天单片机竞赛实训平台,完成本试题的程序设计 与调试。 1.2 选手在程序设计与调试过程中,可参考组委会提供的“资源数据包”。 1.3 请注意: 程序编写、调试完成后选手…...
CANopen转Profinet网关实现原理与CANopen主站配置方法
CANopen转Profinet网关(XD-COPNm20)具有Profinet从站功能的设备。CANopen是一种通用的工业网络协议,而Profinet是以太网上的一种通信协议,两者在工业自动化领域具有广泛的应用。CANopen转Profinet网关的主要作用是实现CANopen设备…...
Mysql单行函数练习
数据表 链接:https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码:b0rp --来自百度网盘超级会员V5的分享 单行函数练习 单行函数(一行数据返回一个结果) #1.显示系统时间(注:日期时间) #2.查询员工工号,姓名,工资以及提高百分之20后的结果(new…...
C++ 11新特性之完美转发
概述 在C编程语言的演进过程中,C 11标准引入了一系列重大革新,其中之一便是“完美转发”机制。这一特性使得模板函数能够无损地传递任意类型的实参给其他函数或构造函数,从而极大地增强了C在泛型编程和资源管理方面的灵活性与效率。 完美转发…...
python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-友情链接管理实现
锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…...
【百度Apollo】探索自动驾驶:深入解析Apollo开放平台架构的博客指南
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…...
代理模式详解(重点解析JDK动态代理)
- 定义 在解析动态代理模式之前,先简单看下整个代理模式。代理模式分为普通代理、强制模式、动态代理模式。其中动态代理模式主要实现方式为Java JDK提供的JDK动态代理,第三方类库提供的,例如CGLIB动态代理。 代理模式就是为其他对象提供一种…...
【大厂AI课学习笔记】1.3 人工智能产业发展(2)
(注:腾讯AI课学习笔记。) 1.3.1 需求侧 转型需求:人口红利转化为创新红利。 场景丰富:超大规模且多样的应用场景。主要是我们的场景大,数据资源丰富。 抗疫加速:疫情常态化,催生新…...
【Python】一个简单的小案例:实现将两张图片合并为一张
使用时保证已经安装了opencv-python import cv2bg "BG.jpg" # 背景图名称 fg "FG.jpg" # 前景图名称 output_filename "new.jpg" # 合成后图片名称img_bg cv2.imread(bg) # 读取背景图 img_fg cv2.imread(fg) # 读取前景图# 读取背景…...
不同的强化学习模型适配与金融二级市场的功能性建议
DQN ES DDPG A2C TD3 SAC QMIX MADDPG PPO CQL IMPALA 哪个模型适合进行股票操作 在考虑使用哪种模型进行股票操作时,需要考虑模型的特点、适用场景以及实现复杂度等因素。以下是对您列出的几种强化学习模型的简要概述,以帮助您做出选择: DQ…...
从SUB、PUSH到栈操作:5条指令带你吃透微程序控制器设计核心
从SUB、PUSH到栈操作:5条指令带你吃透微程序控制器设计核心 在计算机组成原理的探索中,微程序控制器设计一直是连接硬件与软件的桥梁。不同于直接通过硬连线控制,微程序控制采用"存储逻辑"的思想,将每条机器指令的执行分…...
5个快速排查Goss测试失败的高效调试技巧
5个快速排查Goss测试失败的高效调试技巧 【免费下载链接】goss Goss是一个开源的Go语言测试框架,用于简化Go应用程序的测试和验证。它提供了一系列的测试断言和测试工具,可以帮助开发者编写更加简洁和可维护的测试代码。 项目地址: https://gitcode.co…...
3个核心维度解析iOS数据取证:iLEAPP从入门到精通
3个核心维度解析iOS数据取证:iLEAPP从入门到精通 【免费下载链接】iLEAPP iOS Logs, Events, And Plist Parser 项目地址: https://gitcode.com/gh_mirrors/il/iLEAPP 一、核心价值:iOS数据解析的全能工具 iLEAPP(iOS Logs, Events, …...
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为心仪歌手的演唱会门票秒光而烦恼吗?还在为黄牛高价票而心痛…...
ArduPilot开源飞控之飞行模式切换机制解析
1. ArduPilot飞行模式概述 第一次接触ArduPilot时,最让我震撼的就是它丰富的飞行模式。就像开车时有手动挡、自动挡、运动模式一样,无人机也需要根据不同的飞行场景选择合适的"驾驶模式"。举个例子,新手练习时用Stabilize模式就像开…...
3步实现专业级语音克隆:GPT-SoVITS技术原理与实践指南
3步实现专业级语音克隆:GPT-SoVITS技术原理与实践指南 【免费下载链接】GPT-SoVITS 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS GPT-SoVITS是一款基于GPT架构的少样本语音合成系统,通过结合SoVITS声学模型,仅需5秒…...
Vue3 + Vite + SuperMap iClient3D 避坑指南:从零搭建三维GIS项目(附常见报错解决方案)
Vue3 Vite SuperMap iClient3D 三维GIS开发实战:从环境搭建到避坑指南 三维地理信息系统(3D GIS)开发正成为智慧城市、数字孪生等领域的核心技术栈。本文将带你从零开始,基于Vue3和Vite构建工具,整合SuperMap iClien…...
FICO批量修改资产字段AR31:替代规则失效的排查与修复
1. 替代规则失效的典型场景 最近在SAP FICO模块实施过程中,遇到一个挺有意思的问题。财务部门需要对大批量资产进行成本中心调整,要求按照不同使用日期切换不同的成本中心。听起来是个很常规的需求对吧?我们按照标准流程在GGB1配置了替代规则…...
Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南
Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南 【免费下载链接】Cataclysm-DDA Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world. 项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA 欢迎来到Cat…...
C# + Halcon实战:药盒上多个条形码一次扫全的配置与代码详解(.NET Framework 4.8)
C# Halcon实战:药盒多条形码高精度识别系统开发指南 在药品包装生产线上,一个药盒往往同时印有追溯码、物流码和防伪码等多种条形码。传统扫码设备通常需要多次定位才能完成读取,而基于Halcon的机器视觉方案能实现毫秒级的多码同步识别。本文…...
