首页 > 其他分享 >CTFer blogs--hash比较绕过

CTFer blogs--hash比较绕过

时间:2024-01-26 12:44:25浏览次数:28  
标签:72% hash -- blogs 5f% 7b% 绕过 4b% md5

1.PHP弱类型

===和==的区别:

===在进行比较时,会先判断类型是否相同,再进行比较

==  在进行比较时,会先将字符串类型转化相同,再比较

转换规则: 

字符串的开始部分决定了它的值,如果以合法的数值开始,则使用该数值,否则为0

eg. admin==0

  1admin=1

  0e123456==0e456789  相互比较的时候,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等

 

2.MD5比较绕过

(1)不完全比较绕过

a!=b (此处!=表示严格不等于 !==表示不等于)

但md5(a)==md5(b)

思路:找到两个均为0e开头的md5值的a和b

符合要求的md5:

$a                       md5($a)
QNKCDZO        0e830400451993494058024219903391
240610708        0e462097431906509019562988736854
s878926199a    0e545993274517709034328855841020
s155964671a    0e342768416822451524974117254469
s214587387a    0e848240448830537924465865611904

特例:

如果出现要求 a=md5(a)

$a            md5($a)
0e00275209979 0e551387587965716321018342879905
0e00506035745 0e224441551631909369101555335043
0e00540451811 0e057099852684304412663796608095
0e00678205148 0e934049274119262631743072394111
0e00741250258 0e899567782965109269932883593603
0e00928251504 0e148856674729228041723861799600

特特例:

双重md5加密后的0e字符串

$a                                             md5(md5($a))
7r4lGXCH2Ksu2JNT3BYM        0e48d320b2a97ab295f5c4694759889f
CbDLytmyGm2xQyaLNhWn        0e3a5f2a80db371d4610b8f940d296af
770hQgrBOjrcqftrlaZk        0e2756da68ef740fd8f5a5c26cc45064

 

(2)null值绕过

题目要求:

$a!=$b
md5($a)===md5($b)

对于这种强比较问题,使用两个不同的数组 使其值均为null,实现绕过

a[]=1&b[]=2

 

(3)碰撞绕过

题目要求:

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

思路:找到两个不同的数据,md5加密后相同

url编码数据1:
%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
url编码数据2:
%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

#md5(urldecode())结果均为008ee33a9d58b51cfeb425b0959121c9

 

(4)特殊md5值

问题:

select * from 'admin' where password=md5($pass,true)

解答:

ffifdyop 这个字符串被md5哈希会变成276f722736c95d99e921722cf9ed621c

这几个字符前几位刚好是or‘6,而mysql刚好又会把hex转成ascii解释,

因此拼接后就是where password = "or '6xxxx'.(为什么是永真式呢,因为6xxxxx,其实在布尔判断中是相当于true的)

等价于一个or永真式,相当于万能密码,绕过md5了

 

(5)文件绕过

linux使用md5collgen碰撞生成两个md5值相同但内容不同的文件

md5collgen -o 1.bin 2.bin

windows可以下载fastcoll,碰撞生成两个md5值相同但内容不同的文件

fastcoll.exe -p 123.txt -o 1.txt 2.txt

 

标签:72%,hash,--,blogs,5f%,7b%,绕过,4b%,md5
From: https://www.cnblogs.com/heck1ng/p/17989079

相关文章

  • 记一次 .NET某工控自动化系统 崩溃分析
    一:背景1.讲故事前些天微信上有位朋友找到我,说他的程序偶发崩溃,分析了个把星期也没找到问题,耗费了不少人力物力,让我能不能帮他看一下,给我申请了经费,哈哈,遇到这样的朋友就是爽快,刚好周二晚上给调试训练营的朋友分享GC标记阶段相关知识,而这个dump所展示的问题是对这块知识的一个......
  • call方法,apply方法,和arguments对象
    //1.call方法//2.apply方法//3.arguments对象functionadd(a,b){console.log(a+b);}add(1,2);//call方法第一个参数是this指针,即调用者,第二个参数开始,就是原函数的实际参数add.call(null,10,20);//apply方法第一个参数是this指针,即调用者,第二个参数是一......
  • 量化交易开发之函数API(四)
    量化交易开发之函数API(四)以前面策略代码为例进行讲解,如下:definitialize(context):run_daily(period,time='every_bar')g.security='000001.XSHE'defperiod(context):order(g.security,100)下面我们讲解一下python中的函数知识:order(......
  • 中兴设备show命令大全,收藏!
    中午好,我的网工朋友。虽然思科华为还是行业老大哥,但应该不少网工工作中用的中兴设备吧?今天就给你来一篇中兴show命令的整合,提供一个详尽的参考手册给你,有效地执行日常监控和故障排除工作。今日文章阅读福利:《中兴—厂家拓扑图标库》私信我,发送暗号“中兴图标”,给你发送全系列图标库......
  • Node.js
    Node.js是一种用于编写服务器端JavaScript的运行时环境。它基于Google的V8JavaScript引擎,使JavaScript可以用于编写高性能、可伸缩的网络应用程序。Node.js提供了一组丰富的内置库和模块,使得开发者可以轻松地创建服务器端应用程序、命令行工具以及其他类型的应用程序。Node.js采用......
  • 短程无线自组网协议栈之:意义和价值是什么?
    近几年随着智能手机和智能硬件的快速发展,人们已经意识到未来的设备除了电源之外,整个通讯和链接将会是无线化的,这些设备的形状不一样,功能不一样,电源供电方式不一样,接收或者控制的对象也不一样,传输的内容更是千差万别。这些大量的设备肯定需要一个强有力的协议栈将他们有序的组织起来......
  • 无涯教程-Scala - 闭包
    closure闭包是一个函数,其返回值取决于在此函数外部声明的一个或多个变量的值。以下带有匿名函数的代码。valmultiplier=(i:Int)=>i*10这里,函数体中使用的唯一变量i*10是i,它被定义为函数的参数,尝试以下代码-valmultiplier=(i:Int)=>i*factor乘数中有两个自由变......
  • Golang 语言入门:基础语法与示例
    引言Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。自2009年推出以来,Go已经成为云计算、微服务、网络服务器等领域的热门选择。其设计哲学是简洁、快速和易于理解,这使得Go语言特别适合当今快速发展的软件行业。Go语言的基本语法......
  • 得物开放平台接入得物SDK
    得物开放平台接入得物SDK......
  • Sublime Text使用技巧分享
    本文档会不断更新有关字体打开Preferences->Settings,可以在右侧文件中自定义设置字体设置使用font_face属性设置示例:"font_face":"Menlo"提示:SublimeText目前不支持多字体设置,所以理论上不能像vscode那样为中文、英文分别准备一种字体。只能通过字体合并工具来解决取......