CTF writeup 0_IDF实验室

本文是一篇关于CTF比赛的挑战解析,包括密码解密、图片隐写、摩斯密码、编程题、逆向工程等多个方面,通过一系列谜题和技巧,引导读者深入了解CTF比赛的各个环节。作者分享了各题目的解决思路和方法,涉及的技能包括Base64、ASCII码、摩斯电码、图片分析、编程等。
摘要由CSDN通过智能技术生成

牛刀小试


1.被改错的密码

从前有一个熊孩子入侵了一个网站的数据库,找到了管理员密码,手一抖在数据库中修改了一下,现在的密码变成了 cca9cc444e64c8116a30la00559c042b4,那个熊孩子其实就是我!肿么办求解!在线等,挺急的。。
PS:答案格式wctf{管理员原密码}


刚开始猜是Base46或者MD5,二话不说解码走起,结果都是乱码…(囧rz).仔细看了一下,描述中有”手一抖在数据库中修改了一下”,又数了一下发现有33位,而MD5是32位…既然很有可能是MD5,16进制数最大为f,那么说明密文中的l多余了,删之再次解密得明文,加上wctf{XXXX},提交,OK~flag不知道为什么又被加密了:)


2.啥?

这里写图片描述

谁能告诉我这是啥?答案又是啥。。


图片隐写,保存下来用notepad什么的打开图片就能发现:”没错,答案就是wctf{XXXX}”..flag不知道为什么又被加密了:)


3.ASCII码而已

\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\u767e\u771f\u7684\u597d\u96be\u3002\u3002\u0077\u0063\u0074\u0066\u007b\u006d\u006f\u0072\u0065\u006d\u006f\u0072\u0065\u005f\u0077\u0065\u0069\u0062\u006f\u005f\u0066\u0061\u006e\u0073\u007d


\uxxxx…这不是Unicode码么..直接解码,可得:”大家好,我是@无所不能的魂大人!话说微博粉丝过百真的好难。。wctf{XXXX}”…flag不知道为什么又被加密了:)


4.摩斯密码

嘀嗒嘀嗒嘀嗒嘀嗒 时针它不停在转动

– — .-. … .

嘀嗒嘀嗒嘀嗒嘀嗒 小雨它拍打着水花

-.-. — -.. .

PS:答案格式wctf{你所知道的}


提示已经不能再明显了,解摩尔斯电码可得:”XXXX”…flag不知道为什么又被加密了:)


5.聪明的小羊

一只小羊跳过了栅栏,两只小样跳过了栅栏,一坨小羊跳过了栅栏…
tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosarwCniibecesnren.


密码题,题目中有栅栏,很明显是栅栏加密,没说层数,那就只好暴力破解.而密文中含有大量空格,自己在撸脚本的时候要注意一下.用某些网站解的时候会出现错误的结果,原因就是没处理好空格,如果非得用某网站解的话那么此时空格都换成”?”也可以解出来.解密之,得到:”the?anwser?is?wctf{XXXX},if?u?is?a?big?new,u?can?help?us?think?more?question,tks.”…flag不知道为什么又被加密了:)
注:某网站为:http://heartsnote.com/tools/cipher.htm


包罗万象


1.图片里的英语
这里写图片描述

一恒河沙中有三千世界,一张图里也可以有很多东西。
不多说了,答案是这个图片包含的那句英文的所有单词的首字母。
首字母中的首字母要大写,答案格式是wctf{一坨首字母}
加油吧少年!看好你哦~


图片隐写.用notepad打开,没发现什么明显的信息.搜了一下”jpg”
,发现:

这里写图片描述


嘿嘿嘿,看来是图种,直接用压缩软件打开,可以发现:


这里写图片描述


这不就是笑傲江湖嘛.作为星战迷,赵叔玩了一次星战梗我还记得呢.然后再次一番尝试后,还是没找到什么有价值的线索,卡了挺久…再看了一下题目,”这个图片包含的那句英文的所有单词的首字母”,猜测会不会是台词,又想到那个梗,猜是”May the force be with you”,结果还真是..这题出的..喜欢看电影原来也有奇用啊[doge_face]..所以flag就是…


2.抓到一只苍蝇

报告首长!发现一只苍蝇。。
在哪?
here!
卧槽?!好大一坨苍蝇。。
文件地址: http://pan.baidu.com/s/1bnGWbqJ
提取码:oe6w
PS:flag写错了,太麻烦也懒得改了,格式还是wctf{…},大家明白就好,不要在意这些细节。。


还没下呢,发现是.pcapng的文件..嗨呀,wireshark还不太会用,默默跳过…


初探乾坤


1.简单编程-字符统计

这里这里 → http://ctf.idf.cn/game/pro/37


编程题,写个python跑就好啦~~代码如下(python2.7 注意我使用的库哦~):

# -X- coding: utf8 -X-
import requests
import re

s = requests.Session()
url = 'http://ctf.idf.cn/game/pro/37/'
c = s.get(url).content

html=''.join(c.split())
reg = r'<hr/>(.+)<hr/>'
im = re.compile(reg)
imlist = re.findall(im,html)

string=''
for i in ['w','o','l','d','y']:
    string=string+str(imlist[0].count(i))
print string

payload = {
  'anwser':string}
r = s.post(url, data=payload)

print r.content

搞定:”你看起来好厉害的样子。。好吧,答案就是wctf{XXXX}”..flag不知道为什么又被加密了:)


2.谁是卧底

武林中某知名杀手在一次任务中失败,然后逃窜到了人群中,当时那个社会并没有我们现在这么发达,满地都是文盲,而这些文盲甚至连一句完整的英文都说不出来,所以其实只要用心去发现,就会很容易发现这个稍微有些文化的杀手是谁哦~答案wctf{杀手的英文名}
人群→ http://pan.baidu.com/s/1bnq6nmR
密码: 988u


5.32 MB的txt…用notepad打开,统计显示一共5586640个字符,0行,说明这是一个很长的字符串.题目中”而这些文盲甚至连一句完整的英文都说不出来,所以其实只要用心去发现,就会很容易发现这个稍微有些文化的杀手是谁哦”.”一句完整的英语”显然是关键,所以这题的目的就是让我们在这一个长字符串中寻找一句完整的英语.作为一枚Ctfer(虽然很菜),哪有这么老实,观察到文件名有”woldy”这个词,先搜一下看看会不会直接定到目标语句,结果”woldy”有50个,”flag”有121个,”key”有316个…其他的关键词也是几十+的结果…看来只能老老实实做了.又看了一下文本,这个文本是单词掺杂在[a-z]字符里的.一句完整的英语显然是好几个完整的单词连一起的.所以,我们可以分割这个大字符串,先从每份200个开始尝试,渐渐缩小每份的大小,这样拥有这个句子的一份肯定(其实也不是绝对,但几率是很大的,而且每份长度越小,几率就越大)是完整单词最多的.最多有多少个呢?我猜的多一点,30个.随着每份长度增加,猜测的个数也要多些,这样更准确.那么怎么判断一个字符串是不是单词呢?可以利用常见单词2000个做字典,用python跑一下.以上是思路,下面是完整代码(python2.7):

fp=open("whoiswoldy.txt",'r')
s=fp.read()
for e in range(200,5586640,200):#每份字符串长度为200
    l=0
    f = open("dic.txt")
    while 1:
        line = ''.join(f.readline().split())
        if line in s[e-200:e]:
            l=l+1
        if line=='scenery':#这是字典里的最后一个单词
            break
    f.close()
    if l>30:
        print e-200,"->",e,l,s[e-200:e]

结果如下

这里写图片描述

“what will you see if you throw the butter out the window”.英语谜语,搜之.So,答案就是wctf{谜底}…flag不知道为什么又被加密了:)


3.Fuck your brain

这是什么,你能理解它吗?
++++++++++++[>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++<<<<<<<-]>>>>+++.<—–.>—.<+++.>>>>+++.<<<<—-.>>>++++++.<<<<<+++.–.>>>>>—-.<<<++++.<<+++.>>>>+++.>—.>++.


这么风骚的代码,明显是brainfuck.随便找个解释器,解之可得:”wctf{XXXX}”…flag不知道为什么又被加密了:)


倒行逆施

逆向不太会…GG


攻无不破

…GG


百密一疏


1.凯撒加密

大概就是这样吧,不能告诉你再多U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJGXbRH7YJH7YSH]X=93dVZ3^S8X$:8"&:9U]RH;g=8Y!U92'=jX$KH]ZSj&[S#!gU#XdK9\.

这么明显的提示.没说移动的个数,写个脚本爆破就行.但是要注意,普通的凯撒密码字符只在[A-Z]中,密文里却有非英文字母,所以写的时候要把非英文字母一起移位(ascii码).爆破的结果如下:


这里写图片描述


刺眼的”=”..base64解之:”the flag is wctf{XXXX},plz flow my weibo,http://weibo.com/woldy“…flag不知道为什么又被加密了:)


2.特殊的日子

每个人的一生中都会或多或少有那么几个对自己很重要的日子,比如对于我来说,这一天就很重要。
答案格式wctf{日期} //友情提示,此题需要暴力破解,但只是爆破这段密文,不是爆破这个网站。。 = =!
就是这一天↓
4D1FAE0B


总觉得线索不够,默默点了提示:crc32.好吧…
题目说是时间,看来明文就是某个时间啦.所以只要遍历某n年的日期,经过crc32加密后要是和密文相等就是明文啦~写个python爆破一下咯(python2.7):



# -X- coding: cp936 -X-
import zlib
import itertools#利用itertools.protduct()生成年月日的所有组合

def crc32(st):
    crc = zlib.crc32(st)
    if crc > 0:
      return "%x" % (crc)
    else:
      return "%x" % (~crc ^ 0xffffffff)

year = [str(i) for i in range(1000,3000)]#生成年'1000'~'3000'
month = [str(i) if i>9 else (str(0)+str(i)) for i in range(1,13) ]#生成月'01'~'12'
day = [str(i) if i>9 else (str(0)+str(i)) for i in range(1,32) ]#生成日'01'~'31'
realDate = '4D1FAE0B'.lower()#明文

for item in itertools.product(year,month,day):
    date = ''.join(item)
    if crc32(date) == realDate:
        print date

所以flag就为:wctf{XXXX}…flag不知道为什么又被加密了:)


3.伟人的名字

从前有个很厉害的人物演讲了一堆很厉害的东西,可是我读书少,认识人不多,你知道这个人叫啥不。。
答案格式wctf{名字}

友情提示1、外国人,只要名字就可以了,就别要姓了,首字母大写。
友情提示2、说过我读书少,外国人的名字和姓我是分不清的,反正答案就是大家最常叫的那个。。
以下就是这个人讲话的节选:

EB BMQF KYJRD, IM ICHZZZ YWELXABD, ICCH PVLQ EB PGJS, UEZW PAGE RDS IGJOW QQQNHQO ZU BOTOSNS RD CFU YCFUQA. VGJQP RDWD AKIYWPU HDQ TZXLZSO, AONK CSYHPWHTRL CQ YISCLAWBD FWG ECAB VSIAZQCZ ER CWGH PSDWGICYB PC LRO YDRECYDJ ZZBYHHJ. PVP ENOGHQ CQ WKIYJ WAPUGYOYV SVZ YJGHHPAR WFA NDJH ER OSCYGYS VSNFZXLZ EKC UWRZA.

YRU HSH PFFPNAH VSIAZQQ ID YCOTQ - YRR OD Y QLOJ HZ ZAOC YNAD, PVZXED LUKO HH JSPG; BZW WG D YOWO PC EYPHWH, HSRSCV HKXOEWJAR ZC OCH - MXR O FYHZ WM PPDP HSH XICGCJ ZI W WRLC EZGHWRKR GEUSCUWH, MPDP WY YJR BCWF RSP, “PAXZLAEBR GJ SRNA, SYPWPQR WY RNWMXJWHTRL” - Y GEUSCUWH WULLLOH WFA NRKICY CJSXLCO ZI IOY: PMCDLJM, NKJPURU, GGOSLVC, LQB KLU EHDHJB.

NDL KP DKFRH WULLLOH WFAGP CJSXLCO L ENOYG WBO EHCMDJ OWOGWBNH, BZURD LQB GZXRD, HYOH DLZ HHQP, WFWH FYJ LVQQFP Y AZUC TCXGPTFO HWQH BCC YHZ PYJYTQB? HLJH JRS XZLL WY RDOE FEGERPEQ HDBCCW?

EB WFA WRLC SLQPCCB KT WFA HRPHR, MJZJ Y TPZ CSYHPWHTRLO SDTA MHCJ RUYJHPG PVP PKZP MB OHDABOLLC QUCARZP EB LRO SRSN ZI IOILKQA GYJUPU. W GM BZW OVLQI TCRK HSLQ FPVNKBDLZEZTWW - L SSWFMIS LR. T BK YRR PPOGAJP RDOE YJM RD ID UKIWG ALNKYJUP NHONHQ KTWF OYB KHSHP DPRNHS RP OYB KHSHP UPQCNOELMJ. WFA PQCNUJ, PVP DWWEK, HSH ZSGRRECY UDWNK SS EPEBR RK EKGO PQBAOGRSN HLJH WLEDH RSN NRSJHCB WBO YHZ ZFK DHPRS LR – YJR WFA ROMS QUMI EKYP QLPA NDL HCXJU WLEDH WFA HRPHR.

DLZ DR, AJ DAZWRU OXHPEQLQQ: LVI BZW SVLW UCFU YCFQRNM FYJ OR BCC WKI - WGV UDOE WKI FYJ OR BCC WKIC AKIYWPU.

XB BSWOMS NLRENPQQ CQ RDS ZMNZO: WGV LKH ZFWH DKAFTFY KTOJ RZ DKF BMQ, ESP HKYP EREAHSHP KP AWB GM TZU PVP DNSPGMI ZI IOY.

DEBLOJU, ZFAHSHP MZX WFP AEHTCCJG RD OXHPEQL MN NLRENPQQ CQ RDS ZMNZO, WGV MB FV PVP QWAP FEUS QPOYGYNRD MB DWPABRWF OYG OONUGBWNH SVTFF KP YOY RD MZX. KTWF O JMKR FMJGNLCJQP MQF RLHM VSNS UCSOCG, KTWF VTVRKFJ RDS IGJOW HQRRH KT RSN OHCZG, JAH XQ UZ DKFEK PC OCWR WFA WDLZ HH HCGH, ODNGJU KGO MOCOGTQE OYG DWD FAZA, XIE IJCHLLC EKYP SHPA ZQ AOCWF UZG’O HRPG XXQP EUSHM EC CFU KKY.


刚开始想到的是凯撒加密,跑了一下没解出来.这么少的信息,估计就是维吉尼亚加密…那么问题来了,加密用的字符串不知道,它的长度也不知道…只能通过词频分析做了…英语文章中最常见的单词就属”the”了,先看看3个单词的字符串分布吧

# -*- coding: cp936 -*-
import re
article='''EB BMQF KYJRD, IM ICHZZZ YWELXABD, ICCH PVLQ EB PGJS, UEZW PAGE RDS IGJOW QQQNHQO ZU BOTOSNS RD CFU YCFUQA. VGJQP RDWD AKIYWPU HDQ TZXLZSO, AONK CSYHPWHTRL CQ YISCLAWBD FWG ECAB VSIAZQCZ ER CWGH PSDWGICYB PC LRO YDRECYDJ ZZBYHHJ. PVP ENOGHQ CQ WKIYJ WAPUGYOYV SVZ YJGHHPAR WFA NDJH ER OSCYGYS VSNFZXLZ EKC UWRZA. 
YRU HSH PFFPNAH VSIAZQQ ID YCOTQ - YRR OD Y QLOJ HZ ZAOC YNAD, PVZXED LUKO HH JSPG; BZW WG D YOWO PC EYPHWH, HSRSCV HKXOEWJAR ZC OCH - MXR O FYHZ WM PPDP HSH XICGCJ ZI W WRLC EZGHWRKR GEUSCUWH, MPDP WY YJR BCWF RSP, "PAXZLAEBR GJ SRNA, SYPWPQR WY RNWMXJWHTRL" - Y GEUSCUWH WULLLOH WFA NRKICY CJSXLCO ZI IOY: PMCDLJM, NKJPURU, GGOSLVC, LQB KLU EHDHJB. 
NDL KP DKFRH WULLLOH WFAGP CJSXLCO L ENOYG WBO EHCMDJ OWOGWBNH, BZURD LQB GZXRD, HYOH DLZ HHQP, WFWH FYJ LVQQFP Y AZUC TCXGPTFO HWQH BCC YHZ PYJYTQB? HLJH JRS XZLL WY RDOE FEGERPEQ HDBCCW? 
EB WFA WRLC SLQPCCB KT WFA HRPHR, MJZJ Y TPZ CSYHPWHTRLO SDTA MHCJ RUYJHPG PVP PKZP MB OHDABOLLC QUCARZP EB LRO SRSN ZI IOILKQA GYJUPU. W GM BZW OVLQI TCRK HSLQ FPVNKBDLZEZTWW - L SSWFMIS LR. T BK YRR PPOGAJP RDOE YJM RD ID UKIWG ALNKYJUP NHONHQ KTWF OYB KHSHP DPRNHS RP OYB KHSHP UPQCNOELMJ. WFA PQCNUJ, PVP DWWEK, HSH ZSGRRECY UDWNK SS EPEBR RK EKGO PQBAOGRSN HLJH WLEDH RSN NRSJHCB WBO YHZ ZFK DHPRS LR -- YJR WFA ROMS QUMI EKYP QLPA NDL HCXJU WLEDH WFA HRPHR. 
DLZ DR, AJ DAZWRU OXHPEQLQQ: LVI BZW SVLW UCFU YCFQRNM FYJ OR BCC WKI - WGV UDOE WKI FYJ OR BCC WKIC AKIYWPU. 
XB BSWOMS NLRENPQQ CQ RDS ZMNZO: WGV LKH ZFWH DKAFTFY KTOJ RZ DKF BMQ, ESP HKYP EREAHSHP KP AWB GM TZU PVP DNSPGMI ZI IOY. 
DEBLOJU, ZFAHSHP MZX WFP AEHTCCJG RD OXHPEQL MN NLRENPQQ CQ RDS ZMNZO, WGV MB FV PVP QWAP FEUS QPOYGYNRD MB DWPABRWF OYG OONUGBWNH SVTFF KP YOY RD MZX. KTWF O JMKR FMJGNLCJQP MQF RLHM VSNS UCSOCG, KTWF VTVRKFJ RDS IGJO
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值