SQL注入---MD5加密绕行

Posted Labs安全研习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入---MD5加密绕行相关的知识,希望对你有一定的参考价值。

大家好,最近小编要练习登录爆破,来看看今天的题目吧

 

题目 后台登录
格式:flag:{xxx} 
解题链接: http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php

 

                           

打开网页,这个题目连用户名都不用猜了,看来用密码,看来题目比较初级啊


试试123456来进行测试,提示密码错误,右键点击查看源代码,查看是不是包含了用户名,发现一段sql语句,表admin,包含username= adminpasswordmd5加密,估计是怕绕行才加密后输入

<!-- $password=$_POST['password'];

         $sql  = "SELECT * FROM admin WHERE username = 'admin' and password =  '".md5($password,true)."'";

         $result=mysqli_query($link,$sql);  

         if(mysqli_num_rows($result)>0){  

         echo  'flag is :'.$flag;

         }  

         else{  

         echo  '密码错误!';

         }  -->

 

分析下这个sql语句

$sql = "SELECT * FROM  admin WHERE username = 'admin' and password =  '".md5($password,true)."'"

 

参考:http://www.w3school.com.cn/php/func_string_md5.asp

md5()函数有两个参数,一个是要加密的字符串,另一个是输出格式,具体是

raw

可选。规定十六进制或二进制输出格式:

·          TRUE - 原始 16 字符二进制格式

·          FALSE - 默认。32 字符十六进制数

 

md5($password,true)MD5值转化为16进制

那么我们可以在加密前,来个绕行,然后再MD5加密

百度一下,发现这个链接后面有个提示“ffifdyop”,把这个进行MD5加密得到

276f722736c95d99e921722cf9ed621c

 

SQL注入---MD5加密绕行

然后再把这个作为十六进制转为字符,包含特殊字符

http://www.bejson.com/convert/ox2str/

 

方法二,我们也可以自己写个md5解密算法

参考:http://www.w3school.com.cn/php/func_string_md5.asp的实例

<?php

$str = "ffifdyop";

echo "字符串:".$str."<br>";

echo "TRUE - 原始 16 字符二进制格式:".md5($str, TRUE)."<br>";

echo "FALSE - 32 字符十六进制格式:".md5($str)."<br>";

?>

将代码放到https://tool.lu/coderunner/中运行

字符串:ffifdyop<br>TRUE - 原始 16 字符二进制格式:'or'6]��!r,��b<br>FALSE - 32 字符十六进制格式:276f722736c95d99e921722cf9ed621c<br>

sandbox> exited with status 0

和用在线工具一样

 

看到很熟悉的or 关键字,转换之后的字符串包含'or'<xxx>

$sql = "SELECT * FROM  admin WHERE username = 'admin' and password = ''or'<xxx>'

 

直接提交ffifdyopflag得到了

 

 

 


以上是关于SQL注入---MD5加密绕行的主要内容,如果未能解决你的问题,请参考以下文章

MD5加密

C# MD5 和/或其他加密 oledb (access 2007)

Node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)

Node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)

Node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)

Node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)