BUUCTF-[MRCTF2020]Ezaudit

[MRCTF2020]Ezaudit

扫描目录,发现www.zip可以下载到源码。
进行部分审计,
在这里插入图片描述
只有当username,password和private_key全部正确时,才会获取flag。
对于username和password,由于是sql查询,可以万能密码进行绕过,剩下的问题是获取private_key。
在这里插入图片描述
给出了获取public_key和private_key的函数,并且mt_rand函数是伪随机函数,只要获取种子值就都不是问题。
接下来我们要根据public_key反推出种子值。
首先转换字符串

s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
key = 'KVQP0LdJKRaV3n9D'
m = ''
for i in key:
    for j in range(len(s)):
        if i == s[j]:
            m += "{} {} 0 {} ".format(j,j,len(s)-1)
print(m)

在这里插入图片描述
找到了一个种子值,开始尝试获取private_key。
在这里插入图片描述
(这里一定要注意php的版本,根据爆破出的种子的版本来,版本不一样,密钥也不一样)
在这里插入图片描述
登录成功获取flag。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值