PHP中md5()函数绕过

PHP md5()函数的简单绕过方法,该篇作为学习笔记简单记录一下。   例题   例题链接http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php   主要代码段:
1     $password=$_POST['password'];
2     $sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
3     $result=MysqLi_query($link,$sql);
4         if(MysqLi_num_rows($result)>0){
5             echo 'flag is :'.$flag;
6         }
7         else{
8             echo '密码错误!';
9         }

 


  PHP md5()函数   引用自 https://www.w3school.com.cn/php/func_string_md5.asp   md5() 函数计算字符串的 MD5 散列。 md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。 来自 RFC 1321 的解释 - MD5 报文摘要算法:MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。MD5 算法主要是为数字签名应用程序而设计的;在这个数字签名应用程序中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密钥下设置私有密钥而完成的)之前以一种安全的方式进行压缩。 如需计算文件的 MD5 散列,请使用 md5_file() 函数。   语法:md5(string,raw) string:所需加密的字符串 raw:可选参数TRUE或FALSE。FALSE(认,32字符十六进制数);TRUE(原始16字符二进制格式)  
  绕过方法   利用md5()函数加密后的字符串达到sql注入效果,破坏sql语句结构。   常用字符串:ffifdyop   在上述例题中,输入ffifdyop后,sql语句结构变为:  
SELECT * FROM admin WHERE pass = ''or'6<trash>'
  从而达到绕过md5()函数效果   至此该简单的学习笔记结束。  

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...