[AFCTF2018]BASE解题思路

简介: [AFCTF2018]BASE解题思路

解压缩后可以看到有21.7M,打开看看这么打的内容是什么

密密麻麻的一堆,不过仔细看,可以发现符合BASE16的特点,只有0-9的数字和ABCDEF6个英文字符,找一网址解码?这也太多了呀,我们警惕一下,先复制一些片段解码

解密完之后怎么看这个像是base64的了,再解密一下base64

解密过后,可以发现还是一堆密文,如何搞?

由此我们可以猜测,本题后续步骤将会是循环使用不同的Base编码方案进行解码,我们可以编写脚本来完成这个重复工作。

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

这里我们按照正则进行匹配,如果符合Base相应编码则进行解码,如果出现特殊字符'{'则输出内容,运行脚本便可以解出Flag。


相关文章
|
6月前
|
算法 图计算 容器
class050 双指针技巧与相关题目【算法】
class050 双指针技巧与相关题目【算法】
45 0
|
6月前
|
算法 机器人
class051 二分答案法与相关题目【算法】
class051 二分答案法与相关题目【算法】
65 0
|
11月前
|
存储 C++
数据的存储练习题 -- (解题思路+代码)
数据的存储练习题 -- (解题思路+代码)
61 0
|
11月前
|
算法
写题思路的分享
写题思路的分享
51 0
|
12月前
|
机器学习/深度学习 存储
【每日易题】求二进制中1的个数——三种非常巧妙的解题思路
【每日易题】求二进制中1的个数——三种非常巧妙的解题思路
76 0
|
算法 C语言 C++
【动态规划】不同路径,编辑距离题解及代码实现
两题由简单到难得DP问题!助我们拿下DP!
60 0
|
机器学习/深度学习 存储 缓存
力扣70爬楼梯:思路分析+优化思路+代码实现+补充思考
力扣70爬楼梯:思路分析+优化思路+代码实现+补充思考
141 0
|
算法 Java C++
力扣题目-两数字和(三种解法,C++,java,python实现)
力扣题目-两数字和(三种解法,C++,java,python实现)
109 0
|
测试技术 API 索引
【day10】LeetCode(力扣)刷题(注释详细)[707.设计链表][278.第一个错误的版本][98. 验证二叉搜索树]
刷题(注释详细)[707.设计链表][278.第一个错误的版本][98. 验证二叉搜索树]。
132 0
【day10】LeetCode(力扣)刷题(注释详细)[707.设计链表][278.第一个错误的版本][98. 验证二叉搜索树]
|
算法
【Day19】LeetCode算法刷题(附带解题思路、代码注释详细) 【777. 在LR字符串中交换相邻字符】 【54. 螺旋矩阵】
学习了解附带解题思路、代码注释详细) 【777. 在LR字符串中交换相邻字符】 【54. 螺旋矩阵】。
117 0
【Day19】LeetCode算法刷题(附带解题思路、代码注释详细) 【777. 在LR字符串中交换相邻字符】 【54. 螺旋矩阵】