标签:oe MD5 Easy 字符串 BJDCTF2020 true md5
[BJDCTF2020]Easy MD5
打开题目之后,就只有这一个输入框,毫无头绪,试着注入什么各种操作,都没有用
试着抓包看看,看到响应头里有
这是mysql查询语句,所以我们要从这里入手
首先我们要知道md5($pass,true)的意思
不懂可以看这篇文章https://www.jianshu.com/p/12125291f50d
所以我们要找到md5后有 ‘or’的字符串,以便让查询语句恒成立
md5函数在指定了true的时候,是返回的原始 16 字符二进制格式。也就是说会返回这样子的字符串:'or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c
通过脚本可以找到这样一个字符串
ffifdyop
那为什么可以恒成立?
因为弱比较 字母和数字混合的字符串会转化为字符串前面的数字,所以数字都是除0都是true,所以恒成立
这样我们就登进去了
查看源代码
发现一个很简单的md5的弱比较
涉及到常规的md5 oe绕过
s155964671a
s214587387a
他们md5后都是以oe开头,在php弱比较过程中是判断为相等的
再进去又是一个md的强比较
这个只要md5数组绕过就可以
当数组md5后会报错,但是会判断相等
param1[]=1¶m2[]=2
flag就爆出了
标签:oe,MD5,Easy,字符串,BJDCTF2020,true,md5 来源: https://www.cnblogs.com/sipc-love/p/14311727.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。