前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[BJDCTF2020]Easy MD5题解

[BJDCTF2020]Easy MD5题解

作者头像
KevinBruce
发布2020-04-13 18:59:07
1.6K0
发布2020-04-13 18:59:07
举报
文章被收录于专栏:CTF及算法学习CTF及算法学习

0x01 解题过程

在首页随便输入点东西,然后抓包发现有hint。

代码语言:javascript
复制
select * from 'admin' where password=md5($pass,true)

这里用到了一个关于md5的知识点,可参考实验吧后台注入一题。PHP中md5函数如果第二个参数设为true,返回的是二进制内容,如果能恰好凑出类似'or的字符串,就可以构成SQL注入。

有两个类似的字符串:

代码语言:javascript
复制
129581926211651571912466741651878684928
md5值为:
\x06\xdaT0D\x9f\x8fo#\xdf\xc1'or'8
ffifdyop
md5值为:
'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c

这里我有点不明白第一个怎么凉凉了,有知道的可以跟我说下。

使用ffifdyop可以进入/levels91.php页面。

里面有一段代码被注释了。

代码语言:javascript
复制
$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
    // wow, glzjin wants a girl friend.

根据代码中的条件,要让a和b值不等但md5值相等。由于这里使用的两个等号,可以借助弱类型来绕过一下。即找两个加密后是0e开头的字符串即可,这样两个值会被当成科学记数法表示的数字来比较。

关于有哪些值,可以参考如下文章。

https://blog.csdn.net/u014549283/article/details/81288443

输入成功之后会进入/levell14.php页面。里面是一段代码:

代码语言:javascript
复制
<?php
error_reporting(0);
include "flag.php";

highlight_file(__FILE__);

if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
    echo $flag;
}

这里也考察了一个PHP的md5函数漏洞,就是如果md5函数的参数是一个数组值,会导致函数返回false。除了md5之外sha1函数也有这个特性。

这里的一个解为:

代码语言:javascript
复制
param1[]=a&param2[]=b

但是其实不止传数组一种解法,还可以构造相同md5值的两条数据。md5值相同的字符串目前为没有找到,但二进制数据是有的,在传递时注意url编码即可。这里给出另一个解:

代码语言:javascript
复制
param1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2&param2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2

同样可以得到flag。

0x02 考点

这个题难度并不大,不过考察md5函数的点较全。

这里主要考察了md5的数组绕过,哈希碰撞绕过,若类型绕过和利用二进制md5数据构造SQL注入。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 解题过程
  • 0x02 考点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档