[BJDCTF2020]Easy MD5 1
[BJDCTF2020]Easy MD5 1
打开实例是个输入查询框,根据题目判断这题跟MD5加密有关
查看源代码发现表单采用GET提交到本页面
尝试请求抓包一波
哦豁,回显发现头信息有个sql语句
这边只要让where条件变成true就行,第一时间考虑到万能密码' or true'
这种的,由于MD5的不可逆性质,所以只能采用脚本遍历(在用作布尔型判断时,以数字开头的字符串会被当做整型数),所以这道题需要遍历出md5包含'or数字
这种格式的字符串。
脚本,(包含'or
的输出,否则输出.
)
<?php
for ($i = 0; ; ) {
for ($c = 0; $c < 1000000; $c++, $i++)
if (stripos(md5($i, true), '\'or\'') !== false)
echo "\nmd5($i) = " . md5($i, true) . "\n";
echo ".";
A thousand years......(鬼知道我这里跑了多久)
太漫长了跑不出来,实例都快关了,直接百度搜索MD5万能密码
哟西这就是我想要的,payload:
?password=ffifdyop
成功跳转新页面,但是还是没有flag
查看源代码,发现注释要求变量a不等于b的同时MD5a要等于MD5b
数组绕过,payload:
?a[]=a&b[]=b
成功跳转(怎么还有!!)
代码审计,要求POST传参,还是一样两个参数不等,md5相等,数组绕过秒了
param1[]=param1¶m2[]=param2
flag{598c2b3e-e118-47a3-8d31-5bc7d4426305}
本文来自博客园,作者:TazmiDev,转载请注明原文链接:https://www.cnblogs.com/tazmi/p/18535661