找回密码
 立即注册
首页 业界区 安全 Web刷题篇-1 [BJDCTF2020]Easy MD5

Web刷题篇-1 [BJDCTF2020]Easy MD5

豹筒生 前天 13:05
    打开可以看到如下界面:
1.png

   打开Burp Suite,输入111后点击提交查询,可以看到如下图所示,将其发至Repeater。
2.png

   切换至Repeater,进行发送后,可以看到在Response中password=md5($pass,true).
 
3.png

    这个时候就想到md5的万能密码。
    md5构造万能密码题型: select * from 'admin' where password=md5($pass,true)
    - ffifdyop
    - 这个点的原理是 ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ‘ or ‘6,而 Mysql 刚好又会吧 hex 转成 ASCII解释,因此拼接之后的形式是select * from 'admin' where password='' or '6xxxxx'。等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。
    此时,输入 ffifdyop 并提交,显示如下:
4.png

    这个时候直接查看页面源代码,如下图所示。
5.png

    这是md5弱类型,此时就可以使用 ?a=QNKCDZO&b=240610708
    md5弱类型: 特殊的md5:0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0。
    以下为几个md5()哈希后值为0e的字符串:
  1. QNKCDZO
  2. 0e830400451993494058024219903391
  3. 240610708
  4. 0e462097431906509019562988736854
  5. s878926199a
  6. 0e545993274517709034328855841020
  7. s155964671a
  8. 0e342768416822451524974117254469
  9. s214587387a
  10. 0e848240448830537924465865611904
  11. s214587387a
  12. 0e848240448830537924465865611904
复制代码
6.png

    从上图可以看到,此时是md5强类型,可以使用 param1[]=1&param2[]=2
    md5强类型: 当进行md5加密的双方进行!==强比较的时候,通过科学计数法0e的这种方式无法绕过,它会将比较的双方的值一个一个字符的对比,而不是解析运算为0后进行比较,但是可以通过传入数组的方式来绕过。最后得到flag。
7.png

 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册