寒假第二周CTFwp——合天CTF

0x00 前言 这周做了合天实验室的CTF
0x01 基础50
下载下来,乍一看是.exe文件。记事本打开,出现flag{666C61677B68315F6337667D}
提交上去不对,推测是加密了,数了一下24位,应该不是md5,试试看是不是16进制。
果然,得到flag。

0x02 基础100 flag就在这儿
下载txt,打开发现全是三维数组。容易想到是RGB三原色数组。

思路:

  1. 把数组转化为图片,再看看有没有什么特别的地方。利用python的PIL库容易实现。
    PIL库的安装就不多说了。参考windos,python3.x安装PIL
  2. 下面要确定图片的size(因为差别太大的size不容易看出东西来):由于数组总共61366行,即61366个像素,可以得到几种size:503* 122,1006* 61,30683*2。于是选择503 *122的size。

python代码如下:
#-*- coding:utf-8 -*- from PIL import Image import rex = 503 #x坐标通过对txt里的行数进行整数分解 y = 122 #y坐标x*y = 行数im = Image.new("RGB",(x,y))#创建图片 file = open('misc100.txt') #打开rbg值文件#通过一个个rgb点生成图片 for i in range(0,x): for j in range(0,y): line = file.readline()#获取一行 rgb = line.split(",")#分离rgb im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素 im.show()

得到flag:

flag{youc@n’tseeme}
0x03 web100 Give Me Flag
下载下来记事本打开:

发现是一堆乱码,但是看到
function $() { var e = document.getElementById("c").value; if (e.length == 16) if (e.match(/^be0f23/) != null) if (e.match(/233ac/) != null) if (e.match(/e98aa$/) != null) if (e.match(/c7be9/) != null) { var t = ["fl", "s_a", "i", "e}"]; var n = ["a", "_h0l", "n"]; var r = ["g{", "e", "_0"]; var i = ["it'", "_", "n"]; var s = [t, n, r, i]; for (var o = 0; o < 13; ++o) { document.write(s[o % 4][0]); s[o % 4].splice(0, 1) } } } document.write(''); delete _

得到代码,简单审计,容易发现,还是两种解法:
1. 根据正则表达式,破解密码,很简单,然后在文本框内输入密码,获取flag。
2. 容易直接读出flag的值。
这里破解的密码是:be0f233ac7be98aa
最后容易得到flag。

本题的关键就是破解变量”_”。
0x04 steg150 一段欢快的曲调
下载文件,确实是一段欢快的曲调。闲话少说,很容易想到是隐写,用audacity打开看看。

放大看看,有点像摩斯电码的感觉,短点代表.长点代表_的话,容易得到这段电码:
…../-…/-.-./—-./..—/…../-…./….-/—-./-.-./-…/—–/.—-/—../—../..-./…../..—/./-…./.—-/–…/-../–…/—–/—-./..—/—-./.—-/—-./.—-/-.-.
接下来,摩斯电码解密即可,得到flag。
5BC925649CB0188F52E617D70929191C

0x05 解密100 Funny Crypto
这题很有意思,一开始试了很久,都没试出来个像样的结果,垂头丧气之时:
低头一看,键盘上
- tgbnjuy把h包围了起来
- 8ujko9 把i包围了起来
- 5rfgy6 把t包围了起来
所以,flag就是hit。
0x06 解密200 找茬游戏
两张一样的图片(反正我肉眼看不出差别)。

两张看上去一样的图片,我首先想到用segosolve的combiner试一下,发现可能存在一张二维码在里面,SUB就出来了一个二维码:

用工具扫描,得到flag。flag{#justdiffit}
0x07 NCTF签到题2
按照说输入口令,但是发现最后一位输入不了,咋整呢?应该是设置了位长,于是用burp输入即可。
0x08 NCTF md5 collision

这题其实很简单,就是要求一个变量a
md5(a)=md5('QNKCDZO') && a != QNKCDZO

由于是弱类型,这样的值应该有不少,百度一下,得到一个:a=240610708
输入得到flag。
0x09 NCTF KeyBoard
这道题也很有意思,之前做了键盘的题是几个键包围了一个字母,但是这题,看键盘,其实是看键盘的轨迹!!
ytfvbhn 的轨迹就是a
tgbgy 的轨迹就是r
。。。
得到flag: nctf{areuhack}
0x10 NCTF 这道题不是WEB
传送门
很简单,打开网址,发现一张图片,burp拦截没发现什么特别的东西,那么很显然,图片有猫腻,下载,记事本打开发现flag。
0x11 合天CTF Exp200 原题链接

下载的文件是一堆英文字母,提示说Audrey Tang,百度得知是perl大佬,那么一定和perl有关系,第一次了解到perl语言(孤陋寡闻==),然后差了很多资料才知道这是perl里的ppencode,将perl代码加密成一堆英文字母。只要将文件加上后缀.pl,就可以当做perl脚本执行,Linux自带perl解释器,路径
/usr/bin/perl

Linux中解释出来,发现是这样的
@#@#@@#@#@#@#@#@#@#@#@#218.76.35.77:65443@#@#@#@#@#@#@@#@#@#@#@#@#

中间的像是个IP地址,但是访问发现,服务器错误。
不加端口号试一下,访问IP: 218.76.35.77 ,结果如下:

【寒假第二周CTFwp——合天CTF】暂时懵逼。

    推荐阅读