【Code-Audit-Challenges】Challenge 11:SQL注入

0x01 题目

<?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 = $_GET['pwd'];
$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);

?>

0x02 解题

这道题用了一个小trick,注意这里password是没有任何过滤的,并且是直接带入了查询中,所以很可能存在sql注入了。这里需要注意的是md5()这个函数,php手册的说明是这样的:

就是说第二个参数是true的时候,会把生成的MD5值当作hex值来转换成字符串,因此,我们可以生成一种含有'or'的hex值,这样就可以用来注入了。
字符串ffifdyop就是一个符合的字符串,本地测试返回的是符合条件的

因此可以注入,payload

?pwd=ffifdyop

(感觉这个只有注入,利用应该没有吧(╯▽╰ ))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 6,360评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 来源;http://bbs.ichunqiu.com/thread-10123-1-1.html?from=ch ...
    池寒阅读 3,717评论 0 0
  • 闹钟等着叫醒我 我在等睡意 留一盏灯 与这个城市的黑暗为敌 写了一半的诗 就停在了这里
    妖瑶杳阅读 1,508评论 0 2
  • 今天聊聊职场的事情,毕竟大多数人还是适合打工的,创业做老板的毕竟是少数。在职场中有这么一类人,有着不错的教育背景,...
    国玺同学阅读 3,520评论 0 0

友情链接更多精彩内容