![79ccf33c885a92bb09af8b4a0e0fe9fa.png](https://i-blog.csdnimg.cn/blog_migrate/469c4d7a57fc0e20a781347a480ad772.jpeg)
[攻防世界]crypto新手练习区混合编码
混合编码最佳Writeup由Viking • ZER0_Nu1L提供
详情见 [攻防世界]crypto新手练习区混合编码_java_kjcxmx的博客-CSDN博客
![f25f42a9f889b4e923a44da646792bcd.png](https://i-blog.csdnimg.cn/blog_migrate/c719b3b06b0a1e3c05e57a30943694c0.jpeg)
难度系数: 2.0
题目来源: poxlove3
题目描述:经过了前面那么多题目的历练,耐心细致在解题当中是 必不可少的品质,刚巧你们都有,你和小鱼越来越入迷。那么走向了下一个题目,这个题目好长 好长,你知道你们只要细心细致,答案总会被你们做出来的,你们开始慢慢的尝试,慢慢的猜想 ,功夫不负有心人,在你们耐心的一步步的解答下,答案跃然纸上,你俩默契一笑,相视击掌 走向了下面的挑战。格式为cyberpeace{小写的你解出的答案}
题目场景: 暂无
题目附件: 附件1
附件内容:
JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzk7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM2ODsmIzY5OyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjNTI7JiM3NjsmIzEyMjsmIzEwNzsmIzUzOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc3OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiMxMDc7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzg7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjODQ7JiM2OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzUwOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc4OyYjMTA1OyYjNTY7JiM1MzsmIzc4OyYjMTIxOyYjNTY7JiM1MzsmIzc5OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM5OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjNjk7JiMxMTk7JiM3NzsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjNjU7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM2OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjMTA3OyYjNTM7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM4NDsmIzEwNzsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzEyMDsmIzc2OyYjMTIyOyYjNjk7JiMxMjA7JiM3ODsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjMTAzOyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjMTE5Ow==
解题
拿到附件内容是一串字母和数字的组合,结尾虽然有明显的填补符号=,经过base64解密后,发现是一堆由&#;划分的数字,立马想到ASCII对照表,tiltle里写出是小写字母的形式,发现这之中的数字不都是大于等于97小于等于119,所以应该不是flag。tiltle中表明是混合加密。在base64解密的基础上尝试Unicode解码,结果又回到了base64的形式,继续进行base64解密,得到的数字都是大于等于97小于等于119。看到了希望。对照ASCII转换得到flag。
可以选择在线解密。
题目:flag->ASCII->base编码->Unicode编码->base编码。
解题:base解码->Unicode解码->base解码->对照ASCII得出flag
https://base64.us/
http://tool.chinaz.com/tools/unicode.aspx
http://ascii.911cha.com/
![490dbec87a3612ee9de24cfd539c2362.png](https://i-blog.csdnimg.cn/blog_migrate/7a058b89faa5197242d70100e1e2f44b.jpeg)
![8a5c1b403f931a2b36d293b796be208f.png](https://i-blog.csdnimg.cn/blog_migrate/e10b5c94740554b5f27dce106f7148d3.jpeg)
![fb2fe5e388beaf7abb09737c240be9d6.png](https://i-blog.csdnimg.cn/blog_migrate/ddf3425ed8dab313c68b4bb6637bf41f.jpeg)
![05cff7edad943b68a47dfebf89d76837.png](https://i-blog.csdnimg.cn/blog_migrate/f822dfd57cc4edd4a1ea13023ba1077f.jpeg)
输入多次解密结果后,立即拿到了flag,完成解题。
welcometoattackanddefenceworld
cyberpeace{welcometoattackanddefenceworld}
代码的实现
博主也找了base64相关的代码实现,如下。
Java版本,可以直接导入java.util.Base64;库文件,调用getDecoder()方法,用decode();解码。
Golang版本,调用系统库
package main
import (
"encoding/base64"
"fmt"
)
func BaseEncodeFunc(str string)(string) {
data := base64.StdEncoding.EncodeToString([]byte(str))
return data
}
func BaseDecodeFunc(str string)(string,error) {
data, err := base64.StdEncoding.DecodeString(str)
if err != nil {
return "",err
}
return string(data),nil
}
func main() {
str := "内容"
data, err := BaseDecodeFunc(str)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("解码前=====%qn", str)
fmt.Printf("解码后=====%qn", data)
}
python
import base64
from io import BytesIO
print(base64.decodestring("内容"))
什么是Base64呢(百度百科)
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。
博主认为对于base64的变种来说,就是转换表和填充符号的区别,基本原理都是大同小异的。所以拿到编码后,要搞清楚转换表才是关键。
Unicode
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
ASCII可显示字符
![9c47bd1a80110202e1db252379d1e8ba.png](https://i-blog.csdnimg.cn/blog_migrate/7d9d517a5d38364c4450502735f7b07e.jpeg)
附录:
base64_百度百科baike.baidu.com![825706d311855c1d565ae9c1c96ba7d2.png](https://i-blog.csdnimg.cn/blog_migrate/4952a55b4680468e8126e6c295ec0d68.png)
![7b33b59a30caa5e853b2dae6e23091c6.png](https://i-blog.csdnimg.cn/blog_migrate/86c2eb32fa85c1162755b22704eabfcf.jpeg)