hakcinglab解密关WP
发布日期:2021-05-24 23:15:52 浏览次数:15 分类:精选文章

本文共 2408 字,大约阅读时间需要 8 分钟。

解密关(https://zhuanlan.zhihu.com/p/21740238)

  • 以管理员身份登录系统
    重置密码时用 burp 抓包,返回包的内容注意。在发现一个 sukey,与 username 连在一起后,尝试用 md5 解密竟然是时间戳。这让我明白了其中的原理,跑个 python 只能解决问题了。
  • 实现代码

    import requestsimport hashlibimport timese = requests.session()headers = {    'Cookie': 'PHPSESSID=aa06ee795e15f980a7d40a8c7331376a'}while 1:    sukey = hashlib.new('md5', str(time.time())).hexdigest()    url = f'http://lab1.xseclab.com/password1_dc178aa12e73cfc184676a4100e07dac/reset.php?sukey={sukey}&username=admin'    r = se.get(url, headers=headers)    time.sleep(0.5)    if r.content:        print(r.content)        break    else:        print(f'Cracking: {sukey}')
    1. 邂逅对门的妹纸
      提示妹子上大三,根据出生年份差不多就能推断大致时间,利用生日年月日的八位数生成字典用 EWSA 爆破即可。
    2. 生成字典的脚本

      with open('pass.txt', 'a') as dic:    for year in range(1980, 2015):        for mon in range(1, 13):            for day in range(1, 32):                print('%d%02d%02d' % (year, mon, day))                dic.write('%d%02d%02d\n' % (year, mon, day))
      1. 万恶的 Cisco 在线破解就可以了

        -http://www.ifm.net.nz/cookbooks/passwordcracker.html

      2. 万恶的加密

        Google 找到如下脚本,跑一下就行了。

      3. 加密解密脚本

        from Crypto.Cipher import DESdef decode_char(c):    if c == 'a':        r = '?'    else:        r = c    return ord(r) - ord('!')    def ascii_to_binary(s):    assert len(s) == 24    out = [0] * 18    i = 0    j = 0    for i in range(0, len(s), 4):        y = decode_char(s[i])        y = (y << 6) & 0xffffff        k = decode_char(s[i+1])        y = (y | k) & 0xffffff        y = (y << 6) & 0xffffff        k = decode_char(s[i+2])        y = (y | k) & 0xffffff        y = (y << 6) & 0xffffff        k = decode_char(s[i+3])        y = (y | k) & 0xffffff        y = (y << 6) & 0xffffff        out[j+2] = chr(y & 0xff)        out[j+1] = chr((y >> 8) & 0xff)        out[j+0] = chr((y >> 16) & 0xff)        j += 3    return ''.join(out)def decrypt_password(p):    r = ascii_to_binary(p)    r = r[:16]    d = DES.new(b'\x01\x02\x03\x04\x05\x06\x07\x08', DES.MODE_ECB)    r = d.decrypt(r)    return r.rstrip(b'\x00')if __name__ == '__main__':    miwen = "aK9Q4I)J'#[Q=^Q`MAF4<1!!\""    print(u'明文' + decrypt_password(miwen))
        1. 喜欢泡网吧的小明
          winhex 打开 dump文件,看到70 以后的都是重复数据,应该没什么用,第一行数据混乱,看不出是什么东西,抹成 0 上传一下试试。
        2. 说明余额

          看到余额为 100 块,转为16进制是 64,数据里并没有这样的地方,仔细观察,分别转换几处不一样的数据,发现2710 转换为十进制是10000,原来是考虑了两位小数。。。那么把两处2710改为4e20 再试试。

          1. 异常数据

            写个脚本慢慢跑 base64吧。

          2. md5真的能碰撞嘛?

            源码有 txt,打开注意到==,是 php 的弱类型漏洞,百度构造 payload 即可。

          3. 小明爱上了一个搞硬件的小姑凉

            需要去官网下载软件才能直接得到 flag。

          4. 有签名限制的读取任意文件

            不会,划水飘过。

    上一篇:hackinglab上传关
    下一篇:《Web安全深度剖析》笔记(一)

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年05月03日 05时33分43秒