您的位置:首页 > 其它

寒假第二周CTFwp——合天CTF

2018-03-05 20:31 429 查看

0x00 前言

这周做了合天实验室的CTF

0x01 基础50



下载下来,乍一看是.exe文件。记事本打开,出现flag{666C61677B68315F6337667D}

提交上去不对,推测是加密了,数了一下24位,应该不是md5,试试看是不是16进制。

果然,得到flag。



0x02 基础100 flag就在这儿



下载txt,打开发现全是三维数组。容易想到是RGB三原色数组。



思路:

把数组转化为图片,再看看有没有什么特别的地方。利用python的PIL库容易实现。

PIL库的安装就不多说了。参考windos,python3.x安装PIL

下面要确定图片的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('<input id="c"><button onclick=$()>Ok</button>');
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

<?php
$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 inpu
b624
t 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 ,结果如下:



暂时懵逼。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CTF