BUUCTF·[WUSTCTF2020]B@se1·WP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-otPYEwOQ-1668501419226)(assets/image-20221115150752-xhxvb0w.png)]​

BUUCTF在线评测 (buuoj.cn)

附件

密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD==
JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/

oh holy shit, something is missing...

分析

提示是少了一些东西

确实我们可以看到在所给密文的中有一段是被隐藏的,那我们先把已知的解密看看

首先第一行很明显就是base64

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SuEVKzJ4-1668501419227)(assets/image-20221115152402-ilniwdh.png)]​

解密得到的是乱码,那还是得想办法拿到缺少的信息

解题

这个题型也确实是第一次见到,查看了大佬的WP,得知这是base64的扩展,就是将base64原本的替换顺序打乱,改成相应的字符顺序,然后使用新的字符顺序去进行base64的加解密

那么一定要先得到缺失的4个字符

利用一位大佬的脚本,得到flag

str="JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/"
ciper="MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbVD"#(==没有用)
import string
import binascii
for i in string.ascii_letters+string.digits:
    if i not in str:
        print(i)
import itertools
s=['j','u','3','4']
for i in itertools.permutations(s,4):
    ss="JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs"+"".join(i)+"kxyz012789+/"
    bins = ""
    for j in ciper:
      bins+=bin(ss.index(j))[2:].zfill(6)
    print(binascii.unhexlify(hex(eval("0b"+bins))[2:-1]))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AY5uIA6c-1668501419229)(assets/image-20221115155911-8lg93uc.png)]​

运行结果发现有好几种可能,那就一个个试吧

尝试之后是最后一个

参考:
https://blog.csdn.net/weixin_44017838/article/details/105601977
https://blog.csdn.net/weixin_44110537/article/details/107328905

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值