一、实验目的
考查信息论与编码及密码学相关知识点,掌握 ASCII 编码、URL 编码、Unicode 编码、Base64 编码、MD5 反查等相关知识
二、实验题目
2.1 识别编码方式并解码
识别以下内容的编码方式,并解码获得原内容
提示:前三项原内容长度为 32 字符,第四项原内容长度为 64 字符
2.1.1 第一题
110, 115, 88, 74, 83, 117, 78, 108, 75, 69, 90, 109, 49, 104, 90, 89, 72, 120, 117, 77, 66, 101, 55, 82, 53, 77, 99, 88, 78, 67, 81, 81
这题不难看出来是ASCII编码,可以利用以下脚本执行即可解之
sc = [110, 115, 88, 74, 83, 117, 78, 108, 75, 69, 90, 109, 49, 104, 90, 89, 72, 120, 117, 77, 66, 101, 55, 82, 53, 77, 99, 88, 78, 67, 81, 81]
for i in sc:
print(chr(i),end="")
获得原内容
nsXJSuNlKEZm1hZYHxuMBe7R5McXNCQQ
2.1.2 第二题
%4a%6a%44%30%36%64%72%36%55%47%4c%70%64%64%33%32%4b%74%38%32%52%63%4d%75%76%75%69%39%62%70%51%34
这题不难看出来是URL编码,可以利用以下脚本执行即可解之
from urllib.parse import unquote
sc = "%4a%6a%44%30%36%64%72%36%55%47%4c%70%64%64%33%32%4b%74%38%32%52%63%4d%75%76%75%69%39%62%70%51%34"
print(unquote(sc))
获得原内容
JjD06dr6UGLpdd32Kt82RcMuvui9bpQ4
2.1.3 第三题
\u0036\u0065\u0069\u0072\u0064\u0078\u0043\u0059\u0076\u0056\u0074\u0061\u0051\u0070\u006d\u0036\u0034\u0044\u0070\u0066\u0057\u0045\u0067\u0061\u0031\u0063\u004a\u0062\u0075\u0053\u0070\u0030
这题不难看出来是Unicode编码,可以利用以下脚本执行即可解之
sc = b'\u0036\u0065\u0069\u0072\u0064\u0078\u0043\u0059\u0076\u0056\u0074\u0061\u0051\u0070\u006d\u0036\u0034\u0044\u0070\u0066\u0057\u0045\u0067\u0061\u0031\u0063\u004a\u0062\u0075\u0053\u0070\u0030'
print(sc.decode('unicode_escape'))
获得原内容
6eirdxCYvVtaQpm64DpfWEga1cJbuSp0
2.1.4 第四题
dTAwZWlRenpCMkdJYmJnWVRNeTJGMnVvVzdRazVVc3VNR1JTMHZjRGFnR3lNdXlaSlNIZEs5dkpsZGNnQWp3QQ==
这题不难看出来是Base64编码,可以利用以下脚本执行即可解之
import base64
sc = b'dTAwZWlRenpCMkdJYmJnWVRNeTJGMnVvVzdRazVVc3VNR1JTMHZjRGFnR3lNdXlaSlNIZEs5dkpsZGNnQWp3QQ=='
print(str(base64.b64decode(sc), "utf-8"))
获得原内容
u00eiQzzB2GIbbgYTMy2F2uoW7Qk5UsuMGRS0vcDagGyMuyZJSHdK9vJldcgAjwA
2.2 识别哈希算法并获取原内容
de2e0bb61b2d5bb4d6af9ec01ed5c323
369a1b5e2e79bdf007bdff3c30ed139442067e40
根据字符长度可知第一个为md5,解出可得
ZsmuKd
根据字符长度可知第一个为SHA1,解出可得
241337
2.3 综合
将以下字符串还原为原内容
U2xSU2JFcFVVVEJLVkZrMFNsUkthVXBVVW0xS1ZGVXdTbFJhYWtwVVNtbEtWRkpzU2xSUk1FcFVXVFJLVkVwcFNsUlNiRXBVVVRCS1ZGcHFTbFJLYVVwVVVteEtWRlV3U2xSUmVVcFVTbWxLVkZKc1NsUlJNRXBVV1RSS1ZFcHBTbFJTYlVwVVZUQktWRnBxU2xSS2FVcFVVbXhLVkZVd1NsUlNhRXBVU21sS1ZGSnNTbFJWTUVwVVVUSktWRXBwU2xSU2JFcFVVVEJLVkZwcVNsUkthVXBVVW10S1ZGVXdTbFJSZUVwVVl6TktWRmt5U2xSYWFFcFVXbWxLVkUwd1NsUlpNa3BVV21oS1ZGVXhTbFJrYUVwVVdUSktWRnBvU2xSUk1VcFVZek5LVkZKclNsUlJORXBVVFRCS1ZHTTBTbFJTYTBwVVVUQktWRkV5U2xSS2FVcFVVbXRLVkZVd1NsUlJlRXBVWXpWS1ZGa3lTbFJhYUVwVVdtbEtWRTB4U2xSWk1rcFVXbWhLVkZFeFNsUmpNMHBVVW10S1ZGRTBTbFJOTUVwVVl6UktWRkpyU2xSUk1FcFVVbWhLVkVwcFNsUlNiRXBVVlRCS1ZGSm9TbFJLYVVwVVVtMUtWRlV3U2xSYWFrcFVTbWxLVkZKdFNsUlZNRXBVV1RSS1ZFcHBTbFJTYkVwVVVUQktWRnBxU2xSS2FVcFVVbXhLVkZFd1NsUlpORXBVU21sS1ZGSnNTbFJSTUVwVVdtcEtWRXBwU2xSU2JFcFVWVEJLVkZWNVNsUkthVXBVVW14S1ZGVXdTbFJXYUVwVVNtbEtWRkpzU2xSVk1FcFVWWGxLVkVwcFNsUlNiRXBVVlRCS1ZGRXlTbFJLYVVwVVVtdEtWRlV3U2xSUmVFcFVZek5LVkZreVNsUmFhRXBVVlRGS1ZHUm9TbFJaTWtwVVdtaEtWRlV4U2xSTmQwcFVXVEpLVkZrelNsUk9hMHBVVG1zPQ==
首先第一遍解码得到
SlRSbEpUUTBKVFk0SlRKaUpUUm1KVFUwSlRaakpUSmlKVFJsSlRRMEpUWTRKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmxKVFUwSlRReUpUSmlKVFJsSlRRMEpUWTRKVEppSlRSbUpUVTBKVFpqSlRKaUpUUmxKVFUwSlRSaEpUSmlKVFJsSlRVMEpUUTJKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmtKVFUwSlRReEpUYzNKVFkySlRaaEpUWmlKVE0wSlRZMkpUWmhKVFUxSlRkaEpUWTJKVFpoSlRRMUpUYzNKVFJrSlRRNEpUTTBKVGM0SlRSa0pUUTBKVFEySlRKaUpUUmtKVFUwSlRReEpUYzVKVFkySlRaaEpUWmlKVE0xSlRZMkpUWmhKVFExSlRjM0pUUmtKVFE0SlRNMEpUYzRKVFJrSlRRMEpUUmhKVEppSlRSbEpUVTBKVFJoSlRKaUpUUm1KVFUwSlRaakpUSmlKVFJtSlRVMEpUWTRKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmxKVFEwSlRZNEpUSmlKVFJsSlRRMEpUWmpKVEppSlRSbEpUVTBKVFV5SlRKaUpUUmxKVFUwSlRWaEpUSmlKVFJsSlRVMEpUVXlKVEppSlRSbEpUVTBKVFEySlRKaUpUUmtKVFUwSlRReEpUYzNKVFkySlRaaEpUVTFKVGRoSlRZMkpUWmhKVFUxSlRNd0pUWTJKVFkzSlROa0pUTms=
可以识别出依然为Base64编码,然后再解码
JTRlJTQ0JTY4JTJiJTRmJTU0JTZjJTJiJTRlJTQ0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTU0JTQyJTJiJTRlJTQ0JTY4JTJiJTRmJTU0JTZjJTJiJTRlJTU0JTRhJTJiJTRlJTU0JTQ2JTJiJTRlJTQ0JTZjJTJiJTRkJTU0JTQxJTc3JTY2JTZhJTZiJTM0JTY2JTZhJTU1JTdhJTY2JTZhJTQ1JTc3JTRkJTQ4JTM0JTc4JTRkJTQ0JTQ2JTJiJTRkJTU0JTQxJTc5JTY2JTZhJTZiJTM1JTY2JTZhJTQ1JTc3JTRkJTQ4JTM0JTc4JTRkJTQ0JTRhJTJiJTRlJTU0JTRhJTJiJTRmJTU0JTZjJTJiJTRmJTU0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTQ0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTU0JTUyJTJiJTRlJTU0JTVhJTJiJTRlJTU0JTUyJTJiJTRlJTU0JTQ2JTJiJTRkJTU0JTQxJTc3JTY2JTZhJTU1JTdhJTY2JTZhJTU1JTMwJTY2JTY3JTNkJTNk
可以解码得到
%4e%44%68%2b%4f%54%6c%2b%4e%44%68%2b%4e%44%6c%2b%4e%54%42%2b%4e%44%68%2b%4f%54%6c%2b%4e%54%4a%2b%4e%54%46%2b%4e%44%6c%2b%4d%54%41%77%66%6a%6b%34%66%6a%55%7a%66%6a%45%77%4d%48%34%78%4d%44%46%2b%4d%54%41%79%66%6a%6b%35%66%6a%45%77%4d%48%34%78%4d%44%4a%2b%4e%54%4a%2b%4f%54%6c%2b%4f%54%68%2b%4e%44%6c%2b%4e%44%68%2b%4e%44%6c%2b%4e%54%52%2b%4e%54%5a%2b%4e%54%52%2b%4e%54%46%2b%4d%54%41%77%66%6a%55%7a%66%6a%55%30%66%67%3d%3d
可以识别出是URL编码,然后再解码
NDh+OTl+NDh+NDl+NTB+NDh+OTl+NTJ+NTF+NDl+MTAwfjk4fjUzfjEwMH4xMDF+MTAyfjk5fjEwMH4xMDJ+NTJ+OTl+OTh+NDl+NDh+NDl+NTR+NTZ+NTR+NTF+MTAwfjUzfjU0fg==
可以识别出是Base64编码,然后再解码是
48~99~48~49~50~48~99~52~51~49~100~98~53~100~101~102~99~100~102~52~99~98~49~48~49~54~56~54~51~100~53~54~
可以发现是ASCII编码,然后再解码
0c0120c431db5defcdf4cb1016863d56
可以发现是md5编码,然后再解码
376620072
可以发现是一个QQ群的群号
三、实验环境
连接 Internet 的主机
四、参考资料
- http://byd.dropsec.xyz/2016/05/25/CTF之加解密总结/
- https://juejin.im/post/5d736acee51d4561da6201b7#heading-5