Bugku-web之备份是个好东西

CTF小白给自己2022年设定了个目标,那就是摆脱小白称号!!唉,道阻且长,慢慢努力吧!!
刚打开网址会发现两个重复的字符串(刚开始以为是有寓意的,尝试了各种解密方式都没有解开,试到md5解密时得出的结果是NULL,先留个铺垫最后再做讨论)。
之后尝试了大佬提供的SourceHacker源码泄露工具,可以自动访问常见的CTF线索文件,如果返回正常说明文件存在(有点类似于御剑的后台扫描,依靠积累形成的字典)。
在这里插入图片描述
通过扫描结果可以看出网址存在.bak的备份文件,再根据题目提示首先将.bak文件下载下来,并打开。
在这里插入图片描述
在这段php代码中需要注意的问题:(1)变量中key会被注释掉,因此设置变量时可以采用中段重复的方式,如kkeyey,这样即使注释掉key剩余部分仍为key;(2)构造payload时注意应有两个变量,一个是key1,另一个是key2;(3)flag的获取考察了md5绕过,目前有两种方法。
第一种方法:利用md5()函数无法处理数组,如果传入为数组,则返回结果为NULL,自然会得到值不同而md5相同的结果。
在这里插入图片描述
第二种方法:根据php弱语言特点,利用==比较漏洞。如果两个字符经过MD5加密后结果为0exxxxxxxx形式,就会被认为是科学计数法,其值为0*10的xxxxxxxx次方,最终结果仍然为0,也就满足值不等而md5值相等的结果。
下列的字符串的MD5值都是0e开头的:
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
在这里插入图片描述
最后讨论下,刚打开题目时为什么会出现两个重复的字符串,因为原址并未给key1和key2赋值,均为NULL,也就印证了我刚开始提出的对出现字符串进行md5解密得到NULL的结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值