• PHP中md5()函数绕过


    PHP md5()函数的简单绕过方法,该篇作为学习笔记简单记录一下。
     
    例题
     
     
    主要代码段:
    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()函数
     
     
    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()函数的效果
     
    至此该简单的学习笔记结束。
     
  • 相关阅读:
    Bit命令
    Leetcode628. 三个数的最大乘积
    MyBatis中一级缓存和二级缓存
    Docker学习-实战MySQL数据同步
    Docker学习-容器数据卷的使用
    我的健康计划【要常看啊】
    ASCII编码对照表
    KMP算法详解
    Docker学习-制作一个自己的镜像
    Docker学习-Docker镜像的分层原理
  • 原文地址:https://www.cnblogs.com/CubicZ/p/11374601.html
Copyright © 2020-2023  润新知