zyNo.19

哈希(md5)绕过问题

本质上是弱类型问题的延申

题型

登录的哈希验证

$a != $b

Md5($a) == md5($b)

解决办法Md5绕过

var_dump ("0e123456" == "0e4456789"); //true

'0e545993274517709034328855841020'//true

参考资料0e开头的哈希看一下哈希函数0e开头的md5-CSDN博客文章浏览阅读2.5k次,点赞9次,收藏41次。这篇博客揭示了一个PHP处理哈希值的潜在安全问题。当哈希值以'0E'开头时,PHP会将其解释为0,允许攻击者通过特定构造的0E开头字符串模拟匹配数据库中的哈希值,从而可能非法登录。文章列举了一系列0E开头的MD5哈希值示例,强调了这一漏洞可能带来的风险。https://blog.csdn.net/weixin_45897324/article/details/108961503?fromshare=blogdetail&sharetype=blogdetail&sharerId=108961503&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linkhttps://blog.csdn.net/weixin_45897324/article/details/108961503?fromshare=blogdetail&sharetype=blogdetail&sharerId=108961503&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link

题目进阶

登录的哈希验证 v2

$a != $b

Md5($a) === md5($b)

解决办法(数组)

Warning: md5() expects parameter 1 to be string, array given in php shell coden line 1数组的话返回警告但不会报错仍然会执行,但是返回Null

null === null

md5(array) -> null

知识点

如何将a变为数组,在a后面加【】

如果想加个元素

...........test.php?a[l=a1&a[]=a2&a[]=a3

题目

题目思路

1.通过URL传一个$a 是数组
2. 检查$a[0]和$a[1] 很严格的过滤
3. 取$a数组的前两个元素做拼接 执行危险命令

涉及知识点题目: 2020.10.24 上海 Geekpwn
解答方法
?a[3]=命令注入的payload&a[4]=payload&a[0]=正常&a[1]=正常

........test.php?a[2]=a1&a[3]=a2&a[0]=a3&a[1]=a4

Md5 ($a)

题目进阶+

登录的哈希验证 v3

(string) $a != (string) $b

Md5 ($a)=== md5($b)

参考资料

MD5加密在CTF中的弱强比较与解题策略-CSDN博客

Md5碰撞 两个不同的东西拥有相同的md5:

 

知识点

需要绕过 intval(),由于 intval()可以处理的不仅仅是十进制,还有八进制、十六进制、
科学计数法等。写个测试脚本

<? php $a = $_GET['a']; echo intval($a) . " "; echo intval($a+1);

(传入 1e5,输出:1 100001,绕过成功——1 100001)

首先 $a 是字符串所以 intval()返回了字母前的数字,也就是 e 前面的 1

echo intval(1e10); // 1410065408

echo intval('1e10'); // 1

然后 $a+1 进行了字符串与数字相加的运算,在php 中,这种结果取决于这个字符串长什么样,就$a+1 来讲:

$a 数字开头、中间有其他字母,比如 123y1ng,将 $a 从字符串转数字,转换结果为开头的数字,实际运算 123+1

$a 字母开头,比如 y1ng,转数字结果为0,实际运算为 0+1

$a 是 1e5 这种科学计数法形式,先转成 1×10^5 也就是 10000,再10000+1

所以输入了 1e5,在进行加一之后,就从 1 变成了 100001,绕过成功

题目进阶+++

题目:http://b.y1ng.vip:2031/1.php

第二层 $md5 == md5($md5),

需要一个md5 和md5(md5)都是0e开头

解答:

1.看源码

注意md5不一定是,有可能只是普通字符串

变量覆盖问题

用传参的值替换掉原有变量的值

<? php

$a = 'abc';
$a = 'def';(将abc覆盖)

实例:将键值“Cat”、“Dog”和“Horse"賦值给变量$a、$b和$c:

涉及函数

1.Extract()

定义和用法:
extract() 函数从数组中将变量导入到当前的符号表。
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
该函数返回成功设置的变量数目。

语法
extract (array,extract_rules,prefix)

2.Parse_str()

定义和用法:

parse_str()函数把查询字符串解析到变量中。

对a进行变量覆盖+md5+弱类型

?id=a[]=s878926199a

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么样把pdf转成图片模式(不能复制文字)

贵但好用的wps&#xff0c; 转换——转为图片型pdf —————————————————————————————————————————— 转换前&#xff1a; 转换后&#xff1a; 肉眼可见&#xff0c;模糊了&#xff0c;且不能复制。 其他免费办法&#xff0c;参考&…

飞致云开源社区月度动态报告(2025年1月)

自2023年6月起&#xff0c;中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》&#xff0c;旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况&#xff0c;以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…

hive:数据导入,数据导出,加载数据到Hive,复制表结构

hive不建议用insert,因为Hive是建立在Hadoop之上的数据仓库工具&#xff0c;主要用于批处理和大数据分析&#xff0c;而不是为OLTP&#xff08;在线事务处理&#xff09;操作设计的。INSERT操作会非常慢 数据导入 命令行界面:建一个文件 查询数据>>复制>>粘贴到新…

Dismissible组件的用法

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只…

【Redis】缓存+分布式锁

目录 缓存 Redis最主要的使用场景就是作为缓存 缓存的更新策略&#xff1a; 1.定期生成 2.实时生成 面试重点&#xff1a; 缓存预热&#xff08;Cache preheating&#xff09;&#xff1a; 缓存穿透&#xff08;Cache penetration&#xff09; 缓存雪崩 (Cache avalan…

开源物业管理系统赋能社区管理提升居民服务体验与满意度

内容概要 在现代物业管理中&#xff0c;开源物业管理系统的出现为社区管理带来了新的契机。这种系统的核心思想是通过开放、共享的方式&#xff0c;为各类物业管理需求提供灵活的解决方案。从基本的信息传递到复杂的投诉处理&#xff0c;开源物业管理系统能够根据不同社区的实…

动态规划DP 数字三角型模型 数字三角形

数字三角形 原题链接 AcWing 898.数字三角形 题目描述 给定一个如下图所示的数字三角形&#xff0c;从顶部出发&#xff0c;在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点&#xff0c;一直走到底层&#xff0c;要求找出一条路径&#xff0c;使路径上的数字…

全连接神经网络(前馈神经网络)

一、全连接神经网络介绍 在多层神经网络中&#xff0c; 第 N 层的每个神经元都分别与第 N-1 层的神经元相互连接。 1、神经元 这个神经元接收的输入信号为向量 &#xff0c; 向量为输入向量的组合权重&#xff0c; 为偏置项&#xff0c; 是一个标量。 神经元的作用是对输入向…

Linux:多线程[2] 线程控制

了解&#xff1a; Linux底层提供创建轻量级进程/进程的接口clone&#xff0c;通过选择是否共享资源创建。 vfork和fork都调用的clone进行实现&#xff0c;vfork和父进程共享地址空间-轻量级进程。 库函数pthread_create调用的也是底层的clone。 POSIX线程库 与线程有关的函数构…

DeepSeek崛起:中国AI新星如何撼动全球资本市场格局

引言 近期&#xff0c;中国人工智能实验室DeepSeek发布的两款开源模型——DeepSeek V3和DeepSeek R1——以其优异的性能和低廉的成本迅速爆火&#xff0c;引发了全球资本市场的震动&#xff0c;尤其对美国资本市场产生了显著影响。DeepSeek R1更是能够在数学、代码和推理任务上…

【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令

文章目录 指令格式&#xff08;重点&#xff09;1. 立即数2. 寄存器位移 一、数据传送指令1. MOV指令2. MVN指令3. LDR指令 二、数据计算指令1. ADD指令1. SUB指令1. MUL指令 三、位运算指令1. AND指令2. ORR指令3. EOR指令4. BIC指令 四、比较指令五、跳转指令1. B/BL指令2. l…

图像处理算法研究的程序框架

目录 1 程序框架简介 2 C#图像读取、显示、保存模块 3 C动态库图像算法模块 4 C#调用C动态库 5 演示Demo 5.1 开发环境 5.2 功能介绍 5.3 下载地址 参考 1 程序框架简介 一个图像处理算法研究的常用程序逻辑框架&#xff0c;如下图所示 在该框架中&#xff0c;将图像处…

病理AI领域基础模型及多实例学习方法的性能评估|顶刊精析·25-01-27

小罗碎碎念 这篇论文聚焦于组织学全切片图像分析&#xff0c;旨在探究多实例学习&#xff08;MIL&#xff09;与基础模型&#xff08;FMs&#xff09;结合的效果。 由于全切片图像&#xff08;WSI&#xff09;分析面临标注有限和模型直接处理困难等问题&#xff0c;MIL成为常用…

Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战

前一篇文章&#xff0c;Tensor 基本操作1 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 目录 Tensor 基本操作torch.max默认指定维度 Tensor 基本操作 torch.max torch.max 实现降维运算&#xff0c;基于指定的 d…

以太网详解(六)OSI 七层模型

文章目录 OSI : Open System Interconnect&#xff08;Reference Model&#xff09;第七层&#xff1a;应用层&#xff08;Application&#xff09;第六层&#xff1a;表示层&#xff08;Presentation&#xff09;第五层&#xff1a;会话层&#xff08;Session&#xff09;第四…

Spring MVC异常处理机制

文章目录 1. 异常处理的思路2. 异常处理两种方式3. 简单异常处理器SimpleMappingExceptionResolver 1. 异常处理的思路 系统中异常包括两类&#xff1a;预期异常和运行时异常RuntimeException&#xff0c;前者通过捕获异常从而获取异常信息&#xff0c;后者主要通过规范代码开发…

本地大模型编程实战(03)语义检索(2)

文章目录 准备按批次嵌入加载csv文件&#xff0c;分割文档并嵌入测试嵌入效果总结代码 上一篇文章&#xff1a; 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索&#xff0c;为了演示方便&#xff0c;使用的是 langchain 提供的内存数据库。 在实…

[Dialog屏幕开发] 设置方式对话框

阅读该篇文章之前&#xff0c;可先阅读下述资料 [Dialog屏幕开发] 设置搜索帮助https://blog.csdn.net/Hudas/article/details/145381433?spm1001.2014.3001.5501https://blog.csdn.net/Hudas/article/details/145381433?spm1001.2014.3001.5501上篇文章我们的屏幕已实现了如…

【JavaEE进阶】Spring留言板实现

目录 &#x1f38d;预期结果 &#x1f340;前端代码 &#x1f384;约定前后端交互接口 &#x1f6a9;需求分析 &#x1f6a9;接口定义 &#x1f333;实现服务器端代码 &#x1f6a9;lombok介绍 &#x1f6a9;代码实现 &#x1f334;运行测试 &#x1f384;前端代码实…

1.23学习

misc buuctf-小明的保险箱 打开附件是一个在线图片首先将其另存为&#xff0c;然后仅仅只是一个图片&#xff0c;而无其他信息&#xff0c;那么我们再进行binwalk或者foremost文件分离&#xff0c;得到了一个文件夹&#xff0c;其中含有一个压缩包但是是一个加密的&#xff0…