0e开头MD5 python生成脚本 PHP哈希弱类型比较缺陷

原创 2017年04月17日 16:48:09


MD5弱类型比较在代码审计当中经常见到,所以写了一个python脚本,有事没事跑一下,积累一些字符串。

网上大多都是看到《0e开头MD5值小结这篇文章,这里希望给大家一个可自定义字符的自动化脚本,方便大家。

如果有更多的字符串,欢迎留言。微笑


1、什么是PHP哈希弱类型比较缺陷

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

关于PHP hash比较缺陷详细介绍:http://www.freebuf.com/news/67007.html


2、Python脚本

可自定义字符的自动化脚本,更改payload即可,字符串长度则是修改getStr(payload,s,slen)slen

# -*- coding: utf8 -*-
#author:kalbertlee
#http://blog.csdn.net/kalbertlee
import hashlib

payload = "QWERTYUIOPASDFGHJKLZXCVBNM"
#payload = "qwertyuiopasdfghjklzxcvbnm"
#payload = "0123456789"


def calcMd5(s):
	MD5 = hashlib.md5(s).hexdigest()
	if MD5[0:2] == "0e" and MD5[2:32].isdigit():
		print s,MD5

def getStr(payload,s,slen):
	if len(s) == slen:
		#Custom string
		calcMd5(s)
		return s	
	for j in xrange(len(payload)):
		sl= s+payload[j]
		getStr(payload,sl,slen)

if __name__ == '__main__':
	getStr(payload,'',7)


3、我积累的一些0e开头MD5的字符串

纯数字类:

240610708 0e462097431906509019562988736854
314282422 0e990995504821699494520356953734
571579406 0e972379832854295224118025748221
903251147 0e174510503823932942361353209384
1110242161 0e435874558488625891324861198103
1320830526 0e912095958985483346995414060832
1586264293 0e622743671155995737639662718498
2302756269 0e250566888497473798724426794462
2427435592 0e067696952328669732475498472343
2653531602 0e877487522341544758028810610885
3293867441 0e471001201303602543921144570260
3295421201 0e703870333002232681239618856220
3465814713 0e258631645650999664521705537122
3524854780 0e507419062489887827087815735195
3908336290 0e807624498959190415881248245271
4011627063 0e485805687034439905938362701775
4775635065 0e998212089946640967599450361168
4790555361 0e643442214660994430134492464512
5432453531 0e512318699085881630861890526097
5579679820 0e877622011730221803461740184915
5585393579 0e664357355382305805992765337023
6376552501 0e165886706997482187870215578015
7124129977 0e500007361044747804682122060876
7197546197 0e915188576072469101457315675502
7656486157 0e451569119711843337267091732412

大写字母类:
QLTHNDT 0e405967825401955372549139051580
QNKCDZO 0e830400451993494058024219903391
EEIZDOI 0e782601363539291779881938479162
TUFEPMC 0e839407194569345277863905212547
UTIPEZQ 0e382098788231234954670291303879
UYXFLOI 0e552539585246568817348686838809
IHKFRNS 0e256160682445802696926137988570
PJNPDWY 0e291529052894702774557631701704
ABJIHVY 0e755264355178451322893275696586
DQWRASX 0e742373665639232907775599582643
DYAXWCA 0e424759758842488633464374063001
GEGHBXL 0e248776895502908863709684713578
GGHMVOE 0e362766013028313274586933780773
GZECLQZ 0e537612333747236407713628225676
NWWKITQ 0e763082070976038347657360817689
NOOPCJF 0e818888003657176127862245791911
MAUXXQC 0e478478466848439040434801845361
MMHUWUV 0e701732711630150438129209816536


有帮助请一下微笑

版权声明:本文为博主原创文章,未经博主允许不得转载。

hash、MD5、SHA-1、CRC简介

Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是...
  • fivedoumi
  • fivedoumi
  • 2014年06月16日 18:43
  • 7343

CTF/php的弱类型总结(积累中)

0X00 "=="与"==="的区别   在没有搞ctf之前,我也只是简单的知道,哦,“==”是判断数值是否相等,“===”则是判断数值和类型是否相等,其实不然,这并没有说到最核心的一个关键点...
  • wy_97
  • wy_97
  • 2017年08月07日 10:34
  • 1150

使用PHP和Python计算MD5值

PHP Python 计算MD5
  • tfcra
  • tfcra
  • 2017年12月03日 14:41
  • 85

MD5和SHA-1的缺陷

上文介绍了MD5和SHA-1函数,我现在来讲一讲这两个函数作为消息摘要函数的安全上的缺陷是什么。...
  • shsalex
  • shsalex
  • 2016年08月26日 15:42
  • 2015

MD5和SHA-1的缺陷

简洁就是美。把问题说得简单、易懂是一种美德。 上文介绍了MD5和SHA-1函数,我现在来讲一讲这两个函数作为消息摘要函数的安全上的缺陷是什么。 一直到2005年,这两个函数...
  • M_mamba
  • M_mamba
  • 2017年11月27日 10:17
  • 72

php遍历目录,生成目录下每个文件的md5值并写入到结果文件中

  • wgw335363240
  • wgw335363240
  • 2014年04月11日 15:37
  • 2236

Python学习心得(五) random生成验证码、MD5加密、pickle与json的序列化和反序列化

# -*- coding:utf-8 -*- import random as rd #验证码 import hashlib as hsl #MD5加密 import pickle,json #pi...
  • binguo168
  • binguo168
  • 2017年07月26日 23:43
  • 1889

python hashlib sha1和MD5哈希算法

python hashlib库提供了常用的哈希算法。如MD5 SHA1 等今天我们开坑sha1 举个例子,你写了一篇文章,内容是一个字符串’how to use python hashlib -...
  • sinat_21302587
  • sinat_21302587
  • 2017年05月23日 14:58
  • 8341

ASP常用功能封装(包括MD5,无组件上传,各种数据类型处理)

  • 2008年09月08日 09:44
  • 7KB
  • 下载

MD5加密,缺少前置0的问题及解决

问题描述 前段时间项目遇到这样一个问题,需要进行密码校验,发现request发送请求过来的数据,进行MD5加密的时候缺少前置0. 问题解决 public class MD5 { private st...
  • fjkxyl
  • fjkxyl
  • 2017年04月10日 11:34
  • 387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:0e开头MD5 python生成脚本 PHP哈希弱类型比较缺陷
举报原因:
原因补充:

(最多只允许输入30个字)