寒假第二周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 re

x = 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


$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {
    echo "nctf{*****************}";
} else {
    echo "false!!!";
}}
else{echo "please input a";}
?>

这题其实很简单,就是要求一个变量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)