[盟军密码|30分]
二战时盟军截获德军一段密码,密文为:0000011000000000101010110111000011000111100011110001001100111000111001(密钥:helloworld),你可能会解出一个keyxxxxx的答案,请在y后面加{,结尾加},答案的格式是key{xxxxx},所以答案是

二战时德军使用过的一种密码,其实是利用了二进制的表示法来替代字母,也称为“费娜姆密码”
A 1000001                       B 1000010                     C 1000011                      D 1000100
E 1000101                       F 1000110                      G 1000111                      H 1001000
I 1001001                        J 1001010                      K 1001011                       L 1001100
M 1001101                      N 1001110                      O 1001111                      P 1010000
Q 1010001                      R 1010010                      S 1010011                      T 1010100
U 1010101                      V 1010110                      W 1010111                      X 1011000
Y 1011001                      Z 1011010

0000011   H1001000=1001011K
0000000   E1000101=1000101E
0010101   L1001100=1011001Y
0110111   L1001100=1111011{
0000110   O1001111=1001001I
0011110   W1010111=1001001I
0011110   O1001111=1010001Q
0010011   R1010010=1000001A
0011100   L1001100=1010000P
0111001   D1000100=1111101}

key{iiqap}

[我来征服|30分]
我来,我见,我征服,d5Y8h5Xz]ZH7\Wok\Z\8PmUkPJYlQ5IkQmf4P}n}]m\5P}EkiT@@,答案就在这个密文里,答案的格式是key{xxxxx},所以答案是
key{e0ea8a9aaf924a0eb7aa675393f6630a}

import base64
import StringIO
lstr="d5Y8h5Xz]ZH7\Wok\Z\8PmUkPJYlQ5IkQmf4P}n}]m\5P}EkiT@@"
lstr="a2V5e2UwZWE4YTlhYWY5MjRhMGViN2FhNjc1MzkzZjY2MzBhfQ=="
str2=''
for i in lstr:
        temp=chr((ord(i)-3)%128)
        str2=str2+temp
print(lstr)
print(str2)
print base64.decodestring(str2)

[小明入侵|30分]
小明入侵网站后获得了管理员的密文,由于太高兴了手一抖把密文删除了一部分,只剩下前10位e5a14523c0,小明根据社工知道管理员的密码习惯是key{4位的数字或字母}
,所以管理员的密码是
key{mnwt}

import base64
import StringIO
import hashlib   

seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

def get_pwd(str, num):  
        if(num == 1):  
            for x in str:  
                yield x  
        else:  
            for x in str:  
                for y in get_pwd(str, num-1):  
                    yield x+y  

strKey="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
for x in get_pwd(strKey,4):  
    stra="key{"+x+"}"
    m2 = hashlib.md5()
    m2.update(stra) 
    stra2=m2.hexdigest()
    if (cmp(stra2[:10],'e5a14523c0')==0):
        print(stra)
        break

[这是什么|30分]
我是什么,答案就在这个图片里,
http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/06/img/78/78.jpg

答案的格式是key{xxxxx},所以答案是

print chr(107)+chr(101)+chr(121)+chr(123)+chr(99)+chr(108)+chr(108)+chr(98)+chr(111)+chr(74)+chr(55)+chr(104)+chr(103)+chr(106)+chr(125)

key{cllboJ7hgj}

[海贼王|30分]
这里有很多海贼王的图片,挑一张吧,
http://ncstatic.oss-cn-hangzhou.aliyuncs.com/activity/0327dianxin/onepiece25.zip
点击下载海贼王,答案的格式是key{xxxxx},所以答案是
binwalk foremost steghide stegdetect
find . -name "." | xargs grep "key{"

key{CU5e6arJ2q78eLgbOo9dhNSzxkWiQIWS}

[找鼹鼠|50分]
答案就在这个文件里,http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/067/98207.zip
点击下载,答案的格式是key{xxxxx},所以答案是

key{Hhe80fr80afevgfrvgr}

[我心依旧|50分]
答案就在这首歌里,href="http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/05/1.mp3"点击下载我心依旧,答案格式为key{xxx},所以答案是

二进制打开1.mp3,搜索pass,注意误区

key{efrgrh48q4g5gh44q4fhfgg}

[EXE逆向|50分]
答案就在这里,href="http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/789/7abd.zip"点击下载,答案格式为

KEY:{ANYUN0_md57e0cad17016b0>?45?f7c>0>4a>1c3a0}

import os
bb={0x4e,0x74,0x57,0x47,0x79,0x3b,0x32}
for i in bb:
    sys.stdout.wtire(chr(i^7))
bb={0x63,0x58,0x6e,0x46,0x61,0x50}
for i in bb:
      sys.stdout.wtire(chr(i^0x33))
IsP@~<5Pk]uRc

  

s

[APK逆向|50分]
答案就在这里,http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/789/8kfe.apk
点击下载,答案格式为KEY{xxx},所以答案是

KEY{Q1ul3lsR0ghS1}

[EXE2逆向|50分]
答案就在这里,http://ncstatic.oss-cn-hangzhou.aliyuncs.com/dianxin/789/99dkae.zip
点击下载,答案格式为KEY{xxx},所以答案是

对于byte_415768,指向

及取V27[0]=
import sys
code=(1,4,14,10,5,36,23,42,13,19,28,13,27,39,48,41,42)
str="KfxEeft}f{gyrYgthtyhifsjei53UUrrr_t2cdsef66246087138\0087138"
for i in range (0,17):
    sys.stdout.write(str[code[i]-1])

对于
查49,48,50,52,125对应的ASCII码为’1’,’0’,’2’,’4’,’}’,显然是字符串“1024}”

KEY{e2s6ry3r5s8f61024}

中国电信线CTF线下选拨writeup的更多相关文章

  1. CTF线下赛AWD套路小结

    近打了2场CTF线下赛,把AWD模式中的一些小套路做一些总结,本人web狗,二进制部分就不班门弄斧了. 一. AWD模式简介 AWD:Attack With Defence,比赛中每个队伍维护多台服务 ...

  2. CTF线下防御战 — 让你的靶机变成“铜墙铁壁”

    本文首发安全客,未经允许禁止转载.原文链接 一. 前言 随着CTF的普及,比赛的形式也有了越来越多的花样,对于线下赛来说,开始出现了安全加固或者防御战之类的环节,亦或者因为拿下靶机后不希望其他攻击者进 ...

  3. CTF线下赛AWD模式下的生存技巧

    作者:Veneno@Nu1L 稿费:200RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 原文:https://www.anquanke.com/post/id/8467 ...

  4. ctf线下赛中检测外来IP的shell脚本

    该脚本可用于ctf线下赛中,用来检测攻击IP的接入,及时做出响应. #!/bin/bash #写自己队的ip ipA="172.22.60.230" ipB="172.2 ...

  5. CTF线下awd攻防文件监控脚本

    CTF线下awd攻防赛中常用一个文件监控脚本来保护文件,但是就博主对于该脚本的审计分析 发现如下的问题: 1.记录文件的路径未修改导致log暴露原文件备份文件夹:drops_JWI96TY7ZKNMQ ...

  6. 20175312 2018-2019-2 《Java程序设计》第6周课下选做——类定义

    20175312 2018-2019-2 <Java程序设计>第6周课下选做--类定义 设计思路 1.我觉得Book其实就是一个中转的作用,由测试类Bookself通过Book输入数据,然 ...

  7. 2017-2018-2 20165312 课下选做 MySort

    2017-2018-2 20165312 课下选做 MySort 题目描述 模拟实现Linux下Sort -t : -k 2的功能,参考 Sort的实现. import java.util.*; pu ...

  8. PCB Genesis加邮票孔(线与线)实现算法

    一.Genesis加邮票孔(线与线)实现算法 1.鼠标点击位置P点, 2.通过P点求出,垂足2个点:P1C与P2C (两个点即距离2条线段垂直的垂足点) 3.计算P1C到P2C方位角(假设置为变量PA ...

  9. 课下选做作业实现mypwd

    2019-2020-1 20175227 <信息安全系统设计基础> 课下选做作业实现mypwd 要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 ...

随机推荐

  1. 洛谷 P2399 non hates math

    P2399 non hates math 题目背景 non习惯将分数化成小数,但在数学中要以分数形式写,不能化成小数 因此non找到了会编程的你,帮助他将小数化回分数 题目描述 给出一个小数,将它化成 ...

  2. Kafka的存储机制以及可靠性

    一.kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment. 所谓的分区其实就是在kafka对应存储目录下创建的文件夹 ...

  3. HDU 3987 && DINIC

    很容易发现是网络流的题目,但最少边怎么求呢?初时想不到,但画图后忽然发现可以这样: 求一次网络流最小割后,把满流的边置1,不满流的置INF.再求一次最大流即可. 为什么呢? 是否会存在一些边当前不满流 ...

  4. [MSSQL]採用pivot函数实现动态行转列

    环境要求:2005+ 在日常需求中常常会有行转列的事情需求处理.假设不是动态的行,那么我们能够採取case when 罗列处理. 在sql 2005曾经处理动态行或列的时候,通常採用拼接字符串的方法处 ...

  5. 【JavaScript】——JS入门

    结束XML之旅,開始JavaScript的学习,看视频.了解了她的前世今生,还是为她捏了把汗啊! 看了部分视 频了,简单的总结一下吧! JavaScript是什么? JavaScript是一种基于面向 ...

  6. 【j2ee spring】44、巴巴运动网前台产品显示

    [j2ee spring]44.巴巴运动网前台产品显示 项目结构 项目代码 界面显示 <%@ page language="java" isELIgnored="f ...

  7. u-boot学习(五):u-boot启动内核

    u-boot的目的是启动内核.内核位于Flash中,那么u-boot就要将内核转移到内存中.然后执行命令执行之.这些操作是由bootcmd命令完毕的. bootcmd=nand read.jffs2 ...

  8. LeetCode96_Unique Binary Search Trees(求1到n这些节点能够组成多少种不同的二叉查找树) Java题解

    题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For e ...

  9. luogu1347 排序

    题目大意 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列.给你一系列形如A<B的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序(能,矛盾,不确定).确定n个元素的顺序后 ...

  10. WEEX学习网站

    https://github.com/alibaba/weex https://alibaba.github.io/weex/  官网     http://weex.help/topic/57792 ...