「配枪朱丽叶。」

RootのCTF学习笔记。

第三届河北师范大学信息安全挑战赛(HECTF2019) 部分做题记录

WEB部分

【Romance签到】

查看源码href="source.php" 找到hint.php
打开是:

♭‖§∮♯♭‖§∮♬♭‖§§♫♭‖§∮§♭‖§♩§♭‖♯♬¶♭‖§§♫♭‖§§¶♭‖♯¶§♭‖♯¶♫♭‖§∮♭♭‖§§♫♭‖§§♬♭‖♯♬♪♭‖♯¶♪♭‖♯¶‖♭‖♯¶♯♭‖♯♬♬♭‖♯♬♪♭‖♯¶♯♭‖♯¶♯♭‖♯¶∮♭‖§∮♭♭‖♯♬♪♭‖§§♬♭‖♯¶§♭‖♯¶‖♭‖§§♬♭‖♯♬♪♭‖§§♫♭‖♯¶♪♭‖♯¶♫♭‖♯¶§♭‖§∮♭♭‖♯♬¶♭‖♯♬♬♭‖♯¶‖♭‖♯¶♫♭‖♯¶∮♭‖♯¶∮♭‖§§♫♭‖§♩♪‖‖‖♭§♪==

一遍音符一遍盲文解密。连接戳我。
flag{1ac59eab-7240-446e-b52b-a795e102966a}

【file在哪里?】

首页有一个php的warning:

Warning: include(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/index.php on line 16

提到了include函数,想到了伪协议,读取了index.php,得到提示“hint.php”。
base64解码后发现是 卡尔达诺栅格密码,解出来得到flag。

【我只会ping吗?】

/?ip=127.0.0.1;ls

misc部分

【咕咕咕果】

当时没做上,访问https://www.google.com/flag.txt即可获取flag。(我佛了

【这是一个极其简单的签到题】

gif分帧,翻转后得到flag。

【印证血统的时候到了】

f12找到一段颜文字,放控制台一运行就ok。

【Saikou!】

这道题很荣幸拿下来了一血qwq。。可惜自己没有号,用了队友的。
foremost提取图片,得到一个加密的压缩包。
怀疑是明文攻击。使用PKcrack工具,得到压缩密码为:4aqwe!#AS5
(pkcrack这里有点坑,得放在它同级目录下,而且把”!“去掉才行。)
解压有一个txt文档,用010editor打开的得到:

—..—..———.—.—..— ...—...—...—.... .—..———....——..— ..—..—.......—.. ..—.—..———.—.—..

以为是摩斯密码,仔细看只有两种字符,后来怀疑是培根,把.换成a,-换成b解密得到SOURCECODESAIKOU

【cute_bird 】

提取base64,转化为图片,是花的。
然后根据CRC的值,爆破宽:

import os 
import binascii 
import struct 
misc = open(r"temp.png","rb").read() 
for i in range(1024): 
	data = misc[12:16] + struct.pack('>i',i)+ misc[20:29] 
	crc32 = binascii.crc32(data) & 0xffffffff
	if crc32 == 0x7E7F049D: 
		print (i) 

得到750,利用010editor修改宽度即可。

【哪吒?!】

常规题,foremost提取后,改掉伪加密即可。

crypto部分

【啥玩意啊】

flag由3部分组成:hebctf{flag1-flag2-flag3}

part1:
flag1由5个字符组成,sha1加密后:8af093ec12abbd25a82abd6d5ed8080afbbfa098
前3个字符为:odm
第4个字符是个小写字符,最后一个是个数字

上脚本:

import string
import hashlib
import re
#所有小写字母
zm = string.ascii_lowercase

# 输出包含数字0~9的字符串
sz = string.digits 

for i in zm:
    for j in sz:
        flag = "odm"+i+str(j)
        flagmd5 = hashlib.sha1(flag.encode('utf-8')).hexdigest()
        if(re.findall("8af093ec12abbd25a82abd(.*?)",flagmd5)):
            print(flag)

得到odms1

part2:
flag2:playfair加密(有意义的单词)
message:kbkyhs
key:flag1去掉数字

用这个网站进行playfair解密,得到helxlo。

part3:
flag3:仿射加密
key1:它是第3个合格的仿射加密key1(那仿射密码对key1有什么要求?)
key2:凯撒密码向后移几位它就是几
message:srpnv

key1很明显是5/key2猜是3
解密网址
得到disco。

hebctf{odms1-hello-disco}

剩下没做过的/没做上来的参考官方的wp
比赛收获新姿势是最快乐的:P