题目是这个样子的:

code.txt的内容是这样:

有点吓人木?233333

其实解密之后是这样的:

找到一点安慰没?

好了,废话不多说。讲解一下思路吧。

我们知道base64加密是属于可逆加密的。简单点说,就是前后可以互逆。依据某种算法可以计算得出。

那么破解方法呢,就是直接用对应算法破解咯。那么话说到这里不是废话吗?

不要着急,我们来看题。

加密的部分是那个for循环里边的东西。

随机从base16,base32,base64中选择一种加密。然后进行10轮。

既然是随机的,那么问题来了,到底应该每轮是哪种加密呢?

你问我?我怎么知道!!!不是说了丧心病狂嘛!!!

但是呢,python在手嘛,不用怕咯。

我们考虑到两个循环的,第一个是

 for i in range(10):
for k in num:
try:
flag_content = result[k](flag_content)
if flag_content:
break
else:
continue
except:
pass

这里需要解释的地方是循环控制?如果解密成功那个跳过这次,继续下一轮。否则呢继续来呗。

很简单吧。

接着呢。把函数写出来。这里我直接把题目中的拿来了。23333

所以最后的代码是这样的。

 #!/usr/bin/env python
# -*- coding:utf-8 -*- from base64 import * result = {
'':lambda x :b16decode(x),
'':lambda x :b32decode(x),
'':lambda x :b64decode(x),
} flag = open('code.txt','r')
flag_content = flag.read()
# print flag_content num = ('','','') for i in range(10):
for k in num:
try:
flag_content = result[k](flag_content)
if flag_content:
break
else:
continue
except:
pass with open("final_flag.txt","wb") as final_flag:
final_flag.write(flag_content)

这里重在和大家分享这种方法。如果大家有更好的方案。请在下方留言。

记一次ctf比赛解密题的解决(可逆加密基本破解之暴力破解)的更多相关文章

  1. 记一次CTF比赛过程与解题思路-MISC部分

    前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼- 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近 ...

  2. 记一次CTF的签到题

    开篇 打开题目网站 首先看到的是一个人博客,功能点非常少,功能较多的页面就是留言板了 一开始没啥思路,就想着抓包能不能找到SQL注入无果,在这个地方卡了很久 柳暗花明 在乱点的时候,无意中发现题目中的 ...

  3. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

    金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同一时候他也是一个黑客. 考试结束后不久.他吃惊的发现自己的高等数学科目竟然挂了,于是他果断入侵了学校教务部站点. 在入侵的过程中.他发 ...

  4. 【CTF 攻略】CTF比赛中关于zip的总结

    [CTF 攻略]CTF比赛中关于zip的总结   分享到: --> 本文首发于安全客,建议到原地址阅读,地址:http://bobao.360.cn/ctf/detail/203.html 前言 ...

  5. i春秋CTF-“百度杯”CTF比赛 九月场 XSS平台

    “百度杯“CTF比赛 九月场 ###XSS平台   看了别人的wp才知道这里需要变数组引起报错然后百度信息收集,这一步在实战中我觉得是很有作用的,get到.       这里取百度rtiny,看别人w ...

  6. [i春秋]“百度杯”CTF比赛 十月场-Hash

    前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash  如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...

  7. 如何开始你的CTF比赛之旅-网站安全-

    在过去的两个星期里,我已经在DEFCON 22 CTF里检测出了两个不同的问题:“shitsco ”和“ nonameyet ”.感谢所有 的意见和评论,我遇到的最常见的问题是:“我怎么才能在CTFs ...

  8. ctf比赛linux文件监控和恢复shell

    之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助. 脚本一:记录当前目录情况 #!/bin/bashfunction getdir(){    for el ...

  9. "百度杯"CTF比赛 十月场——EXEC

    "百度杯"CTF比赛 十月场--EXEC 进入网站页面 查看源码 发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb ...

随机推荐

  1. 第八课 ROS的空间描述和变换

    1.tf的实际应用 1)在机器人的配置中 从上面可以看出激光雷达中心距离机器人底座的中心有20cm,激光雷达的中心距机器人底座中心有10cm,如果激光雷达在障碍物前面0.3米,那么机器人底座离障碍物多 ...

  2. Regist&Login

    关于注册页面和登录页面的业务流程 form表单中确定action提交地址 method 确定提交的方法--->写出相对应的Servlet,假如接受的数据不多 ,那么用 String userna ...

  3. linux 下运行 tomcat

    一开始找不到表名,原来mysql 表名区分大小写. 修改参数 lower_case_table_names=1 成功运行后不能通过浏览器访问! 开启8080端口 一.关闭防火墙 firewall-cm ...

  4. layer弹出框插件参数及方法介绍

    layerui下载:http://www.layui.com 更多参数请阅读开发文档:http://www.layui.com/doc/modules/layer.html Layui 是一款采用自身 ...

  5. 编写高质量代码改善C#程序的157个建议——建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T>

    建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询一共提供了两类扩展方法,在System.Linq命名空间下,有两个静态类:E ...

  6. leetcode Submission Details

    代码: #include<iostream> #include<vector> using namespace std; struct ListNode { int val; ...

  7. Dijstra算法-------为了纪念,等以后看的时候方便

    杭电problem2066 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  8. Redis缓存穿透、缓存雪崩

    缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义. ...

  9. EFCore扩展Update方法(实现 Update User SET Id=Id+1)

    EFCore扩展Update方法(实现 Update User SET Id = Id + 1) 源码地址(github) 前言 EFCore在操作更新的时候往往需要先查询一遍数据,再去更新相应的字段 ...

  10. 十四、JS同步异步知识点,重点(Node.js-fs模块补充篇)

    (本片文章如果你能耐着性子看我,保证会对同步和异步有一个非常深刻的理解) JavaScript是单线程执行,所谓的单线程呢就是指如果有多个任务就必须去排队,前面任务执行完成后,后面任务再执行.因为Ja ...