CTF Geek Challenge——第十一届极客大挑战Misc Write Up
比赛时间:2020年10月17日早上9点
比赛时限:一个月
0x1 一“页”障目
宣传单里藏有flag,不过分成了三份
拼好如图:
0x2 壮言壮语
工具:
与佛论禅:http://www.keyfc.net/bbs/tools/tudoucode.aspx
0x3 秘技·反复横跳
下载文件
得到一种图片
将图片后缀名改成rar,用WinRAR打开(或者用binwalk分析,显然图片里藏有其他东西,或者foremost得到一个压缩包(foremost的使用方法)) ,里面是一张错位的二维码
位置调整
扫描得到flag
0x4 来拼图
给了一张图片source.jpg和一个压缩包,压缩包里为1600个小图片,这1600个小图片是将source.jpg 编辑 加上flag以后的图片切割得来的。
利用python的CV2库的图像匹配算法,由于修改原图,将flag写入到图片上会造成小图片与原图上相应位置的图片匹配度降低,当匹配度低于某个阈值时,可认为是将flag写到了这张小图片上,阈值取的是5e-10.。
同时将小图片拼接成原图片并且保存。
因为开启多线程,比较时间较短,但运行时比较占CPU
# python3
import cv2
from PIL import Image
import numpy as np
import os
import shutil
import threading# 读取目标图片
source = cv2.imread(r"C:/Users/Lenovo/Desktop/pt/source.jpg")
# 拼接结果
target = Image.fromarray(np.zeros(source.shape, np.uint8))
# 图库目录
dirs_path = r"C:/Users/Lenovo/Desktop/pt/pingTu"
# 差异图片存放目录
dst_path = r"C:/Users/Lenovo/Desktop/pt/new1"def match(temp_file):# 读取模板图片template = cv2.imread(temp_file)# 获得模板图片的高宽尺寸theight, twidth = template.shape[:2]# 执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMEDresult = cv2.matchTemplate(source, template, cv2.TM_SQDIFF_NORMED)# 归一化处理cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1)# 寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)target.paste(Image.fromarray(template), min_loc)return abs(min_val)class MThread (threading.Thread):def __init__(self, file_name):threading.Thread.__init__(self)self.file_name = file_namedef run(self):real_path = os.path.join(dirs_path, k)rect = match(real_path)if rect > 5e-10:print(rect)shutil.copy(real_path, dst_path)count = 0
dirs = os.listdir(dirs_path)
threads = []
for k in dirs:if k.endswith('jpg'):count += 1print("processing on pic"+str(count))mt = MThread(k)mt.start()threads.append(mt)else:continue
# 等待所有线程完成
for t in threads:t.join()
target.show()
target.save(r"C:/Users/Lenovo/Desktop/pt/target.jpg")
拼接结果(不知道为什么存在色差)需要手动拼合部分内容
参考文章
第十一届极客大挑战部分WP(无re和pwn)
从DDCTF2020-拼图题,学习如何做拼图题
CTF Geek Challenge——第十一届极客大挑战Misc Write Up相关推荐
- CTF Geek Challenge——第十一届极客大挑战Web Write Up
比赛时间:2020年10月17日早上9点 比赛时限:一个月 0x1 Welcome sha1绕过 Postman发送POST请求 sha1绕过 线索 Not Found But 这个Not Found ...
- CTF Geek Challenge——第十一届极客大挑战Crypto Write Up
比赛时间:2020年10月17日早上9点 比赛时限:一个月 0x1 二战情报员刘壮 摩斯密码 0x2 铠甲与萨满 凯撒密码 根据flag格式为SYC可以判断,偏移量为6. 0x3 成都养猪二厂 猪圈密 ...
- CTF Geek Challenge——第十一届极客大挑战Pwm Write Up
比赛时间:2020年10月17日早上9点 比赛时限:一个月 参考文章
- CTF Geek Challenge——第十一届极客大挑战Re Write Up
比赛时间:2020年10月17日早上9点 比赛时限:一个月 参考文章
- 2020第十一届极客大挑战——Geek Challenge(部分解)
Crypto 二战情报员刘壮 考点:摩斯密码 通过 1.简介中直接看出是摩斯密码 2.通过在线网站直接解密得到flag 铠甲与萨满 考点:凯撒密码 1.通过题目和提示知道是凯撒密码 2.通过CrakT ...
- 2020第十一届极客大挑战——Geek Challenge部分wp
好吧好吧,这几天的比赛太多了,这个比赛题上的有点慢,只在打其他比赛的间隙打了两天的极客大挑战,现在回来填下坑吧. 就从最简单的MISC开始好了,简答题就简单写了. MISC1-一"页&quo ...
- 十一届极客大挑战部分wp
Web Welcome 访问状态码405,那说明是 HTTP 方法的请求, 那就修改 HTTP 方法的请求 ,改为POST方式得到源码 接着hash碰撞,因为是强等于,所以直接使用数组绕过即可 发现了 ...
- 四个有关文件传输的CTF WEB题(深育杯FakeWget、极客大挑战where_is_my_FUMO、2021陇原战疫CheckIN、N1CTF-curl trick)
文章目录 深育杯FakeWget 极客大挑战where_is_my_FUMO 2021陇原战疫CheckIN N1CTF-curl trick wp来自官方发布和个人想法,觉得这四个题挺有意思的所以整 ...
- 极客大挑战2020_CTF-Web-[极客大挑战 2019]HardSQL
CTF-Web-[极客大挑战 2019]HardSQL 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得 ...
最新文章
- STC用PCA测量脉宽_用于相干激光雷达的大能量长脉宽单频激光器 | COL
- windows下多进程加协程并发模式
- 覆盖你 80 % 网络生活的,竟是这样一家神秘实验室
- 創建oracle用戶及表空間,window,linux下創建oracle用戶及表空間 對比 易於學習
- 工作两个月的感受随笔
- android学习笔记---46视频刻录的实现,视频录像器。
- 软件保护技术--- 常见保护技巧
- 数据库基础(2)选择,投影,连接,除法运算
- 《乐高EV3机器人搭建与编程》——2.1 零件储存箱
- MySQL多实例管理(mysqld_multi)
- 曼昆经济学原理读书笔记加杂感(一)
- 技术人员的赚钱之道-9:极思极恐,技术人员需了解的“穷人”思维与“富人”思维的差别
- 黑客攻防与网络安全-N-0
- java 年轻代算法_java内存模型 年轻代/年老代 持久区,jvm中的年轻代 老年代 持久代 gc...
- 快点来学吧!java保证线程安全的方式
- 开关电源学习——基本元件之电容
- 财贸计算机专业,技能月|这所学校的计算机专业部有这些玩法
- 用KooMail轻松实现本地收取Hotmail/MSN/Live邮件
- RSS的基本使用 - rsslibj
- redis __实现发布订阅
热门文章
- linux 脚本 if else,基于shell的if和else详解
- 如何点击按钮弹出弹框显示几秒_产品反馈设计:如何与用户有效沟通?
- python解初中题_用python解一道数独小题
- java z+_Java Z 字形变换
- java英语介绍_java,英文介绍项目.doc
- rnn 梯度消失爆炸
- python判断ip能否ping通_Python实现检测服务器是否可以ping通的2种方法
- 计算机C语言知识点免费下载,全国计算机二级C语言知识点
- php隐藏表单提交表单提交表单_表单提交及php处理表单数据的实例
- Java 文件压缩与解压缩