php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

CTF中常见php-MD5()函数漏洞

1.数字与字符串之间的比较

var_dump( 0 == "a" );

var_dump( "0" == "a" );

第一个返回的是 true ,第二个返回的是 false

因为php把字母开头的转化为整型时,转化为0, 前面数字后面字母的话就只取到第一个字母出现的位置之前(如intval(’'123abd45gf)结果为123)

2.MD5函数漏洞

$_GET['name'] != $_GET['password']

MD5($_GET['name']) == MD5($_GET['password'])

要求满足上述条件则

那么要求name和password数值不同但是MD5相同,在这里可以利用绕过。

PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。

以下值在md5加密后以0E开头:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

以下值在sha1加密后以0E开头:

sha1(‘aaroZmOk’)

sha1(‘aaK1STfY’)

sha1(‘aaO8zKZF’)

sha1(‘aa3OFF9m’)

GET传入a=QNKCDZO&b=240610708就能绕过了

3.php特性

if($_POST['param1']!==$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){

die("success!");

}

在php中===为完全等于运算,不仅比较值,而且还比较值的类型,只有两者一致才为真。再次使用a=QNKCDZO&b=240610708就不行了,因为a和b类型不同。

PHP中md5的函数特性

md5([1,2,3]) == md5([4,5,6]) == NULL

[1] !== [2] && md5([1]) === md5([2])

所以GET传入a[]=1&b[]=2就能够绕过了。

4.MD5碰撞

if((string)$_POST['param1']!==(string)$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){

die("success!);

}

要求构造param1和param2不同,但是MD5相同,也就是说要求传入两个MD5相同的不同字符串。

Param1=%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

Param2=%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值相同使用谷歌可以搜到相当多被巧妙构造出的二进制文件,其MD5相同,注意一点,post时一定要urlencode!!!

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

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

相关文章

spring 2.0核心技术与最佳实践 pdf_推荐 Spring Boot 实践学习案例大全 数据缓存 和中间件 安全权限...

概况spring boot 实践学习案例spring boot 初学者及核心技术巩固的最佳实践目录『 Spring Boot 2 快速教程 』Spring Boot 2:WebFlux集成 ThymeleafSpring Boot 2:WebFlux集成 MongodbSpring Boot 2:WebFluxRestfulCRUD实践Spring Boot 2&…

python进阶-Python 进阶用法 (持续更新)

装饰器(Decorator) Python 的装饰器是任何可调用对象(callable object),用于修改函数(Function)或类(Class)。按照用途可分为: 函数装饰器 类装饰器 装饰器的…

aws php mysql,AWS快速搭建nginx+php+mysql

yum -y install nginxyum -y install php71yum -y install php71-fpm php71-cli php71-common php71-gd php71-devel php71-pdo php71-mysql php71-mbstringyum -y install mysql-server mysql-develnginx php做服务,在高并发的时候会出现一些错误 connect() to…

python中的字典和集合_Python 字典和集合

字典的每个键值对用冒号分割,键值对之间用逗号分隔,所有键值对包括在{}中。d {key1 : value1, key2 : value2 }键必须是唯一的,值可以不唯一。值可以取任何数据类型,但键必须是不可变对象,如字符串,数字或…

centos 8 kubernetes安装详解_8方面图文详解,电气安装工程施工工艺!

八方面图文解读电气安装工艺控制标准1盘、台、开关柜安装2电缆桥架施工3电缆敷设及接线施工4架空线及设备跳线施工5电力变压器安装6电气母线安装7防火封堵施工8成品保护意识一、盘、台、开关柜安装工艺控制标准1.1按设计图纸并根据厂家资料、尺寸误差要求制作盘底座。1.2立盘的…

python与人工智能应用锁_linux应用锁的搜索结果-阿里云开发者社区

Linux中的spinlock和mutexLinux中的spinlock和mutex作者digoal日期2016-11-09标签PostgreSQL , Linux , spin lock , mutex , 自旋锁 , 抢占锁背景最近在压测PostgreSQL同步流复制时,遇到一个mutex锁的瓶颈问题。具体见 《PostgreSQL 同步流复制锁瓶颈分析》PG是以b…

hfss和matlab,hfss和MATLAB联合仿真

hfss中仿真太费时间,而且是在做优化,能否进行hfss和matlab联合仿真,利用模拟退火算法缩短仿真时间?可能我的问题描述的不是特别清楚,我不是想要具体的解决方案,只希望有相关资料的人能提供给小弟一点资料,…

c++代码健壮性_复活Navex-使用图查询进行代码分析(上)

从了解到修复 Navex, 其中花了一年多, 从对自动化代码审计一无所知到学习PL/Static Analysis, 翻阅十几年前的文档, 补全Gremlin Step, 理解AST, CFG, DDG, PDG, CPG, 也感谢z3r0yu师傅和Gaba哥的的交流指导.本文重点在于静态分析 Joern-图查询部分, 后面的动态分析自动生成EXP…

公文字体字号标准2020_一文了解公文格式规范,图文并茂(建议收藏备用)

本方法根据《党政机关公文格式国家标准》(GB/T9704-2012)制定。具体内容如下:一、办公软件要求适用于微软OFFICE—WORD文字处理软件。二、页面设置1.选择“文件”——“页面设置”选择“页边距”附签,上:3.7厘米,下:3.…

360浏览器卸载_无法卸载?Win10 强推新 Edge 浏览器,来教你如何干掉它

8月17日消息,相信不少更新了 Windows 10 v2004 版本的用户都已经发现,系统默认浏览器已经自动更新为基于 Chromium 打造的全新 Edge 浏览器,虽然该浏览器已经一跃成为全球第二大桌面浏览器,但却仍然有不少用户反馈不好用。撰文 | …

python gridsearch_python gridsearch中的内存错误

我需要应用网格搜索我有20000列和110000行的数据帧,我需要使用python的网格搜索模块调整我的参数#validation for svm#there are an error to check it ( grid search ne marche pas i will check why after)label df.Sentimenttrain df.drop(Sentiment, axis1)fro…

磁卡门锁怎么配卡_样式多的铜工艺品怎么设计请查看_江西南昌皇巢|铜门||别墅铜门|...

江西南昌皇巢|铜门||别墅铜门|专注FNbnWz样式多的铜工艺品怎么设计请查看,咨询更多详情!KLC欧式门锁室内门锁卧室房门锁黄古铜门锁实木门锁具执手锁¥,月销笔进店相关推荐词军升欧式门锁黄古铜田园室内门锁执手机械门锁卧室锁具防盗…

php怎么分割页面,用html如何把页面分割成多个文件,由多个文件拼接而成?

用html如何把页面分割成多个文件,由多个文件拼接而成?更新时间:2014-11-10 作者:久久经验网 来源:久久经验网 所属分类:Web前端摘要:静态html分割页面,达到类似php等动态页面的in…

python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决

python --解析字符串&#xff0c;并返回xml格式字符串 急急急。str """Registrations:Call-ID: 8945da7a7f550c16NWRjZjdmMjhmNWQxYTZlOTJjMDY5YjhiN2RjMDViMWE.User: 1000192.168.1.111Contact: "1000" <1000>1000&g…

13寸笔记本电脑尺寸_如何判断行李箱的尺寸?标准行李箱尺寸对照表(13~32寸)

行李箱已经成为家庭必备的一件物品&#xff0c;很多时候都会用到行李箱&#xff0c;最晚就是大学时期&#xff0c;肯定会准备一个行李箱&#xff0c;有些人第一次买不知道如何判断行李箱的尺寸&#xff0c;今天小编就教大家怎么自己确定行李箱的尺寸。如何判断行李箱的尺寸?行…

python列表转字节_如何在Python中将十进制数转换为字节列表

How do you turn a long unsigned int into a list of four bytes in hexidecimal?Example...777007543 0x2E 0x50 0x31 0xB7解决方案The simplest way I can think of is to use the struct module from within a list comprehension:import structprint [hex(ord(b)) for b…

php里忽略输入数值里的空格,input在标签内设置禁止输入空格

video&period;js1.github地址 2.常用API: class : video-js: video-js应用视频所需的风格.js功能,比如全屏和字幕. vjs-default-skin: vjs-default- ...NSMutableAttributedString 富文本删除线的用法#import //价格 NSString *priceStr "99元 剁手价66元"; NSM…

华为手机怎么隐藏按键图标_mac桌面图标怎么快速隐藏?

我们会应为方便而在电脑桌面直接放一些文件&#xff0c;对于处女座而言无论是桌面还是电脑桌面都不希望非常凌乱&#xff0c;那么我们如何隐藏我们的mac电脑桌面图标文件呢&#xff1f;如何才能使电脑看起来干净整洁呢&#xff1f;一、如何在 Finder 中隐藏桌面图标&#xff1f…

bat脚本中如何多次键盘输入并判断_电脑上如何多开微信?PC端多开微信的方法

相信很多人都有多个微信&#xff0c;尤其是那些工作和生活分的比较开的人士&#xff0c;大家都知道一个电脑和可以登录多个QQ的&#xff0c;但是对于微信却不是这样。当你已经登录一个微信时&#xff0c;再打开微信时会自动弹出当前已经登录的微信窗口。本文将教你如何在PC电脑…

php配置实例,php mailto配置实例

本节内容&#xff1a;php mail to的配置方法。1&#xff0c;配置文件[mail function]; For Win32 only.SMTP mail3.jbxue.comsmtp_port 25; For Win32 only.;sendmail_from meexample.com说明&#xff0c;仅用于测试&#xff0c;所以没有用到用户名和密码&#xff0c;测试代…