CTF招新考试

本文介绍了多种隐写术技术,包括图片属性检查、文件类型转换、010编辑器使用、LSB隐写等,并通过实例解析了如何从图片、文档、压缩包中提取隐藏信息。同时,涉及了base编码家族、摩斯密码、PHP弱比较等知识,展示了在实际解密过程中的策略和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 简单的隐写

  2. 海贼王里的宝藏

  3. 找你妹啊!

  4. 大佬的奇妙冒险

  5. 简单的压缩包

  6. EZbase

  7. 四凯撒还是四栅栏?

  8. 动听音符

  9. 小兔子

  10. EZphp

一, 简单的隐写

下载附件后发现这是一张图片

 

 对于图片的隐写类型,就我目前的水平的来说(菜鸡🐔在说):

(1)首先查看图片的属性,查看其详细信息,看是否有提示。

(2)图片分辨率的改写:有的问题会把图片的高度,宽度改写,从而达到隐藏flag的目的 

(3)图片的文件类型改写:将图片改为txt类型,在文本里查找flag也能找到。

 (4)图片010文本:flag可能隐藏在图片010里的文本里.

 比如就这道题而论,用txt类型查找可得出:

 

比如就这道题而论,用010文本查找可得出:

 

 二、海贼王里的宝藏

下载附件后,里面有一个文档内容如下:(为方便起见我👴给换行了)

 明显就是🐻曰,翻译一下得到:

 这。。这不。。这不就是路飞吗!!!(尖叫!!!)

再打开图片

 根据第一题的理论,我们发现将图片的分辨率不是统一的

并且转换为txt文档后也无法找到flag,那么就试试改变宽高吧。

用010打开图片并修改宽高为一致

 即可找到flag

三、找你妹啊!

下载附件后有一个real flag文本,打开后发现

 

 是核心价值观编码

 解码后得到

 说明是假的,但他说是假的就是假的吗???我们一定要有质疑精神!!!

所以我们提交上去后发现雀氏不对

然后还有第二个文件,是一张照片。

 根据第一题的理论,我们可以先查看其属性,

 这说明这张图片不简单,我们可以先将其转化为文本类型,结果找不到flag,我们再改变其高度和宽度发现也改变不了,那么就剩最后一种情况了,查找010文本,结果得到flag

 四、大佬的奇妙冒险

下载附件后,我们得到一个文本和一个压缩包,首先打开文本得到

 我们先打开第一个网站吧(然后发现咱们被骗了)下面是网站

bilibiliicon-default.png?t=LA92https://www.bilibili.com/video/BV1gV411i7vq?share_source=copy_web

很好,第二个字符串有大小写、数字、还有字符,咱们用base64解码得到

 说明要对压缩包进行伪加密的破解

对于压缩包的隐写,就我目前的水平来说(菜鸡🐔又要说了):

(1)遇到伪加密我们将第二个加密标记位的09 00改为00 00即可打开压缩包(头部加密 第7,8位,身部加密第 9,10位)

(2)Zip密码爆破,若无部分密码提示仅有范围用暴力破解,知道了部分密码用掩码破解

所以有解码后的结果可知,这个是伪加密,所以我们用010打开

查看其头部:                                     查看身部:

                    

 

 有错误,其头部应该是0304而不是0506               发现身部第9、10位出现伪加密,0100改为0000

将上述问题改正

打开文件得到一张好图(😘😘😘❤❤❤)

 对于图片的隐写,我(菜鸡🐔)在这里补充一个:

2,LSB隐写(我们可以通过工具Stegsolve.jar打开此图,然后通过下方的按钮切换到Gray bits,可以看到左上角出现了隐写在该通道的二维码,扫描二维码即可得到flag)

所以我用stegsolve软件打开图片

 然后疯狂点击下方的箭头找二维码,得到:

然后用二维码扫描软件找到flag即可(手机📱扫码也可以yo,毕竟是个二维码)

 五、简单的压缩包

 下载附件后,出现两个文件,一个txt文件,一个zip文件,首先打开txt文件得到

 由第四题的理论我们直接去用掩码破解,得到:

 输入密码后得到文本和压缩包,由文本可得:

那么再根据第四题的理论用暴力破解,得:

输入密码后得到😍😍😍

 六、EZbase

 做这道题之前,鄙人极其推荐一个博客,以下是链接:
版权声明:本文为优快云博主「FFM-G」的原创文章:
原文链接:https://blog.youkuaiyun.com/weixin_44255856/article/details/89792997

好了,我们下载附件后,打开得到

 可以看出有%则用url解码(有0x的也用url解码),得到:

 可以看出这是明显的摩斯密码(有的01010形式、ABBABA,也是摩斯密码,只不过要把A换成-或.),解出得到:

 这里就鄙人(🐔)浅显的知识补充一下:(其实看上面的博客比我这个好太多了😓😥😱)

base家族(这道题所用到的):

64:大小写加数字可能字符,最多3个
32:只有大写和数字,最多6个=
16:只有数字和大写A-F

58 采用数字、大写字母、小写字母,去除字符 0、O、I、l。

 所以用base32解码,得到:

 再用base64解码,得到:

 再用base58解码,得到:

 再用base16解码,得到:

 最后再用base64解码,得到flag:

 七、四凯撒还是四栅栏?

由题意可知道,要么先用栅栏的四个栏数解码,要么用凯撒的四个偏移量。

        

 穷举法还是yyds啊😀😀😀

八、动听音符

 由题意就知道用音符解码即可

 解出的答案明显是base64,解得flag:

 九、小兔子

由题意得,用rabbit解码

但是直接解码得话,会显示需要密码,如下图:

 那么,仔细审题

 今天???!!!

所以密码应该是考试当天的日期,即可的到flag

十、EZphp

打开题目链接后可看到

 可以看出这道题是运用了php的弱比较,以下是鄙人(🐔)的浅见:

==:先将字符串类型转化为相同,再比较

===:先判断字符串类型是否相同,再比较

字符串和数字比较使用==时,会将字符串转化为数字再比较

举个例子:

‘a'==0  true:此时a字符串类型转化为数字。字符串的开始部分决定值,而a字符串开头没有数字却为0.这是因为,字符串开始部分的值决定它的值,而此字符串前面并没有数字,故自动转化为0。

’123a123'==123  true:这就是开始部分的值决定此字符串的值了

‘1234a’==123 false

 打开网页发现代码首先是用get方法读取一个变量a,而要为了让flag显示就要运行代码echo

而要运行代码echo就要使两个if语句为真。

第一个if语句是要使is_numeric()判断变量a是否为数字

第二个if语句是要带a的字符串的值==比较是否为8848

这就是说:

满足第一个条件:带的字符串的值必须是个数字,如1a,12a,123a。

满足第二个条件:字符串数字的值必须是8848,故有8848a,8848a8848。

 即可解出flag

### CTF战队成员的要求 CTF战队在成员时通常会关注候选人的技能水平和技术背景。对于有意向加入的人,战队可能会考察其编程能力、逆向工程、密码学基础以及网络攻防等方面的知识和实践经历[^1]。 为了评估潜在成员的能力,一些队伍可能还会设置特定的任务或者测试题目给申请者完成。这些任务旨在检验候选人解决实际问题的能力及其对安全工具和技术的理解程度。此外,团队协作精神和个人态度也是重要的考量因素之一,因为成功的CTF比赛不仅依赖于个人的技术实力,更取决于整个团队的合作效率[^2]。 ### 寻找CTF战队并成为其中一员的方法 想要加入一支活跃且专业的CTF战队,可以通过多种渠道获取信息: - **社交平台**:许多知名的安全研究者和CTF选手会在Twitter、微博等社交媒体上分享自己所在团队的消息;也可以参加各类信息安全会议或活动期间结识志同道合的人士。 - **在线社区**:像GitHub Discussions、Reddit r/ctf子版块这样的地方聚集了大量的爱好者讨论各种话题,从中可以发现正在贤纳士的工作室或小组。 - **学校社团**:如果是在校学生,则可留意本校是否有专门从事网络安全竞赛的学生组织,并积极参与它们举办的培训课程与内部选拔赛。 - **官方公告**:部分大型赛事主办方也会公布参与单位名单,联系感兴趣的队伍询问是否开放外部人员加盟的可能性也是一个不错的选择[^3]。 ```python # 示例代码用于展示如何在网络爬虫中查找公开聘信息(仅限合法用途) import requests from bs4 import BeautifulSoup url = 'https://example.com/jobs' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') for job_posting in soup.find_all('div', class_='job-post'): title = job_posting.h2.a.string.strip() description = job_posting.p.string.strip() if "CTF" and "recruitment" in description.lower(): print(f"{title}: {description}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值