NSSCTF Crypto 探索

常用编码

前两个题ID303,287在入门时做过了,详见另一篇wp链接

[AFCTF 2018]BASE ID:463

打开文件直接麻了,如果人工解码,估计黄花菜都要凉了,这就需要用到拥有强大数据处理能力的python了,下面是我借鉴得几个大佬的脚本。

首先是大佬xenny的,NSSCTF这个题的wp也有

import re, base64
s = open('/Users/x3nny/Downloads/flag_encode.txt', 'rb').read()
base16_dic = r'^[A-F0-9=]*$'
base32_dic = r'^[A-Z2-7=]*$'
base64_dic = r'^[A-Za-z0-9/+=]*$'
n= 0
while True:n += 1t = s.decode()if '{' in t:print(t)breakelif re.match(base16_dic, t):s = base64.b16decode(s)print(str(n) + ' base16')elif re.match(base32_dic, t):s = base64.b32decode(s)print(str(n) + ' base32')elif re.match(base64_dic, t):s = base64.b64decode(s)print(str(n) + ' base64')

然后是看到另一个博主的脚本链接

import base64with open(r'D:/谷歌下载/flag_encode.txt', 'r', encoding='utf-8') as f:for a in f:while 1:try:a = base64.b64decode(a).decode("utf-8")except:passtry:a = base64.b32decode(a).decode("utf-8")except:passtry:a = base64.b16decode(a).decode('utf-8')except:passif "{" in a:print(a)break


得flag: afctf{U_5h0u1d_Us3_T00l5}

[BJDCTF 2020]base?? ID:691

打开文件一看有个字典,还有密文,先试一试密文能不能直接解
果然没结果,仔细查看字典再对比base64编码表
发现字典里面多了个等号,说明很有可能是密文经过字典里的编码出来的。

直接上脚本

#Jaeger
import base64
dict={0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='}
base64code=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f','g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v','w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/']
str = 'FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw'
m=''
for i in str:for j in range(64):if i == dict[j]:m+=base64code[j]
print(base64.b64decode(m))


BJD{D0_Y0u_kNoW_Th1s_b4se_map}

[安洵杯 2019]JustBase ID:723

VGhlIGdlb@xvZ#kgb@YgdGhlIEVhcnRoJ#Mgc#VyZmFjZSBpcyBkb@!pbmF)ZWQgYnkgdGhlIHBhcnRpY#VsYXIgcHJvcGVydGllcyBvZiB#YXRlci$gUHJlc@VudCBvbiBFYXJ)aCBpbiBzb@xpZCwgbGlxdWlkLCBhbmQgZ@FzZW(!cyBzdGF)ZXMsIHdhdGVyIGlzIGV$Y@VwdGlvbmFsbHkgcmVhY#RpdmUuIEl)IGRpc#NvbHZlcywgdHJhbnNwb#J)cywgYW%kIHByZWNpcGl)YXRlcyBtYW%%IGNoZW!pY@FsIGNvbXBvdW%kcyBhbmQgaXMgY@(uc#RhbnRseSBtb@RpZnlpbmcgdGhlIGZhY@Ugb@YgdGhlIEVhcnRoLiBFdmFwb#JhdGVkIGZyb@)gdGhlIG(jZWFucywgd@F)ZXIgdmFwb#IgZm(ybXMgY@xvdWRzLCBzb@!lIG(mIHdoaWNoIGFyZSB)cmFuc#BvcnRlZCBieSB#aW%kIG(@ZXIgdGhlIGNvbnRpbmVudHMuIENvbmRlbnNhdGlvbiBmcm(tIHRoZSBjbG(!ZHMgcHJvdmlkZXMgdGhlIGVzc@VudGlhbCBhZ@VudCBvZiBjb@%)aW%lbnRhbCBlcm(zaW(uOiByYWluLlRoZSByYXRlIGF)IHdoaWNoIGEgbW(sZWN!bGUgb@Ygd@F)ZXIgcGFzc@VzIHRob#VnaCB)aGUgY#ljbGUgaXMgbm()IHJhbmRvbQpBbmQgdGhlIGZsYWcgaXM^IENURnsyMi!RV)VSVFlVSU*tUExLSkhHRkRTLUFaWENWQk%NfQ==

题目说只有base,姑且相信一次,显而易见的是这里面有很多不属于base的字符’!@#$%^&*()',然后发现刚好对应键盘上的190,那应该是字符替换

上脚本

import base64
m = 'VGhlIGdlb@xvZ#kgb@YgdGhlIEVhcnRoJ#Mgc#VyZmFjZSBpcyBkb@!pbmF)ZWQgYnkgdGhlIHBhcnRpY#VsYXIgcHJvcGVydGllcyBvZiB#YXRlci$gUHJlc@VudCBvbiBFYXJ)aCBpbiBzb@xpZCwgbGlxdWlkLCBhbmQgZ@FzZW(!cyBzdGF)ZXMsIHdhdGVyIGlzIGV$Y@VwdGlvbmFsbHkgcmVhY#RpdmUuIEl)IGRpc#NvbHZlcywgdHJhbnNwb#J)cywgYW%kIHByZWNpcGl)YXRlcyBtYW%%IGNoZW!pY@FsIGNvbXBvdW%kcyBhbmQgaXMgY@(uc#RhbnRseSBtb@RpZnlpbmcgdGhlIGZhY@Ugb@YgdGhlIEVhcnRoLiBFdmFwb#JhdGVkIGZyb@)gdGhlIG(jZWFucywgd@F)ZXIgdmFwb#IgZm(ybXMgY@xvdWRzLCBzb@!lIG(mIHdoaWNoIGFyZSB)cmFuc#BvcnRlZCBieSB#aW%kIG(@ZXIgdGhlIGNvbnRpbmVudHMuIENvbmRlbnNhdGlvbiBmcm(tIHRoZSBjbG(!ZHMgcHJvdmlkZXMgdGhlIGVzc@VudGlhbCBhZ@VudCBvZiBjb@%)aW%lbnRhbCBlcm(zaW(uOiByYWluLlRoZSByYXRlIGF)IHdoaWNoIGEgbW(sZWN!bGUgb@Ygd@F)ZXIgcGFzc@VzIHRob#VnaCB)aGUgY#ljbGUgaXMgbm()IHJhbmRvbQpBbmQgdGhlIGZsYWcgaXM^IENURnsyMi!RV)VSVFlVSU*tUExLSkhHRkRTLUFaWENWQk%NfQ=='
c = ')!@#$%^&*('
for i in m:for j in range(10):if i == c[j]:m = m.replace(i,str(j))
print(m)
print(base64.b64decode(m))

得到一段自然科学和flag

The geology of the Earth's surface is dominated by the particular properties of water. Present on Earth in solid, liquid, and gaseous states, water is exceptionally reactive. It dissolves, transports, and precipitates many chemical compounds and is constantly modifying the face of the Earth. Evaporated from the oceans, water vapor forms clouds, some of which are transported by wind over the continents. Condensation from the clouds provides the essential agent of continental erosion: rain.The rate at which a molecule of water passes though the cycle is not randomAnd the flag is: CTF{22-QWERTYUIO-PLKJHGFDS-AZXCVBNM}

NSSCTF刷题wp——常用编码相关推荐

  1. NSSCTF刷题wp——Crypto入门

    NSSCCTF Crypto 探索 Crypto入门 [鹤城杯 2021]easy_crypto ID:453 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等 ...

  2. NSSCTF刷题wp——单表替换密码

    NSSCTF Crypto 模块 单表替换密码 [HGAME 2022 week1]Matryoshka ID:1855 打开Matryoshka.txt,发现是一堆点,看标签可能是Braille盲文 ...

  3. Python刷题中常用的知识点和易忘点

    刚开始刷题总是会因为忘记或者不了解一些很小的知识点而导致题做不出来,这篇文章总结了常见的易忘点与君共勉. 文章目录 n&(n - 1) 闰年的判定方法 字符串是不可变的 字符串判断大小写字母 ...

  4. 2022年暑期CTF刷题WP(停止更新)

    目录 攻防世界 MISC simple_transfer Reverse simple-unpack logmein getit Bugku MISC 社工-进阶收集 这篇博客用来记录我(一个菜鸡)2 ...

  5. [SWPUCTF 2021 新生赛]第一波放题(nssctf刷题)

    [SWPUCTF 2021 新生赛]jicao json_decode介绍: json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_d ...

  6. java刷题前常用的数据结构及方法

    文章目录 int到string数据类型转换 String转换为int类型 ArrayList动态数组转换为数组 数组转换为动态数组ArrayList类型 String类 字符类Character 字符 ...

  7. 在Codewars刷题时常用的正则表达式

    原文链接:http://caibaojian.com/10-regex-tip.html 1.匹配模式 正则表达式查找与模式匹配的字符串部分· 在JavaScript中,它们是在正斜杠之间//或使用n ...

  8. 在IDE中刷LeetCode,编码调试一体化,刷题效率直线up!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在为刷 ...

  9. 刷题常用之大数类、数学类

    一.前言 数学和大数类都是我们刷题比较常用的类,在笔试的时候两个类都可以用,但是在面试的时候尽量不要用大数类,因为大数类是java语言特有的(虽然有很多语言也有大数,但是不是所有语言都有大数,比如c+ ...

最新文章

  1. 离散化小记,Acwing802. 区间和
  2. MacOs High Sierra 升级失败解决办法
  3. 怎样对ZBrush中的材料进行渲染和着色
  4. cvtcolor python opencv_二值分析 | OpenCV + skimage如何提取中心线
  5. bom .dom_MicroProfile 2.2 BOM导入支持
  6. 小程序 setData 中的坑,其实好像...
  7. Cassandra Java堆外内存排查经历全记录
  8. DS博客作业03--栈和队列
  9. 数据结构与算法之栈的实现及逆波兰计算器简易版
  10. 信号添加百分比噪声的原理和方法
  11. 爬虫实例之豆瓣高分电影
  12. 《技术人创业攻略》-用技术改变世界!
  13. Oracle数据库PL/SQL块-存储函数和过程
  14. QT从入门到入土(三)——信号和槽机制
  15. 拉基米德米表系统源码含简易后台
  16. 【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章
  17. 【百度LIC2020事件抽取赛道】赛后小结(小白篇,大佬略过)
  18. 【Java面试题】之内存泄漏
  19. B站投放管理功能上线!领取你的专属投放报告
  20. highcharts 一图绘制多条线

热门文章

  1. FinClip小程序+Rust(二):环境搭建
  2. 孤狼电商店群全套教程:店群基础+2.0精细化蓝海+深度蓝海+裂变课程2.0
  3. 2021/8/21错题
  4. 非递归!APIO2009atm[抢掠计划]题解
  5. Elasticsearch-32.生产环境常用配置与上线清单 he 集群写性能优化 he 集群读性能优化
  6. css如何控制图片不变形?
  7. caff2 与 pytorch 模型的转换--onnx
  8. c++ 获得文本修改时间_Aha Lottie | 动态修改 Lottie 中的文本
  9. 使用虚拟信用卡在Allegro下单测试教程
  10. 虚荣服务器维护,老牌MOBA手游《虚荣》走入历史,最后的中国服务器即将关闭...