php-MD5/sha1

CTF中常见php-MD5函数漏洞

1、数字和字符串比较,字符串会转化成数字再比较,因为==是弱比较。"123bca"转化成123.

MD5函数漏洞

MD5绕过,php在处理哈希字符串时,把”0e“开头的哈希值都解释为0

以下值在MD5加密以0E开头:

  • QNKCDZO

  • 240610708

  • S878926199a

  • s155964671a

  • s214587387a

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

  • sha1('aaroZmOk')

  • sha1('aaK1STfy')

  • sha1('aaO8zKZF')

  • sha1('aa3OFF9m')

     

1.2、bool类型的true跟任意字符串可以弱类型相等。

1.3、sha1加密比较

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

其实是最简单的报错,false,仔细研究SHA1加密你就发现,其要求参数不能为数组,那我将传入的参数改成数组,两边return的结果不就都为false,从而,满足不等与相等。实现步骤更简单,bp中将传参变量name,password加个[]即可。利用数组绕过,error====error

 name[]=1&password[]=2

 

原文地址:https://www.cnblogs.com/shijiahao/p/12638484.html