文章目录
一.前言
学院网安团队招新赛,记解题思路以便复习。话不多说,直接上题!
二.题目
2.1 MISC类
2.1.1 简单的隐写
点开题目,查看题目信息,题目提示的内容是:“百度搜索:CTF常用隐写套路”。
下载文件,右键属性查看是否有隐藏信息。(养成好习惯,万一呢(狗头)),然而什么都没有找到。。。
没事接着打开文件,看到一个可爱的猫猫图片。
没有头绪,那就根据提示内容百度吧!点开搜索到的第一个链接,查看图片隐写的方法,第一种需要拖入工具中分析,那就拖入010中看看吧。
养成好习惯,先用Ctrl + F 查找文本信息,直接输入flag格式SLsec,找到flagSLsec{e2e0061f251355de79777499528d6d75}。
2.1.2 海贼王里的宝藏
点开题目,阅读信息,查看提示:“PNG宽高”。
下载文件,没有后缀打不开,拖入010中发现文件头504B0304,看来是zip类型的文件,添加zip后缀打开,发现里面有png图片和txt文档。
先打开txt看看吧,发现一串看不懂的文字:呋食嘶我拙果既怎蜂雜果食常沒取咯我現肉森歡萌常啽嗚吖嘍偶和嗄偶動擊嗚嚄破誒堅呆很嗡寶註嘿擊歡堅洞拙蜜取沒山嗄家樣蜂山森嗡山性擊人常象山捕果拙盜冬歡常襲呆沒會有魚歡取呆沒誘取誘魚呆噗嘶嗅哞魚嗡溫吃擊嗅唬達蜂啽發物食冬洞呦誘取性哈偶嘍啽蜜性嗄咬出襲嗷嗷囑噤住發蜂囑誘嗄覺肉有捕怎喜誘非哮冬爾寶歡住偶喜蜂家眠樣哮會嗚嗅唬更人嚄和哞襲拙樣嗅達哮蜜出噤氏喜山類性嗷告嘶我偶捕洞雜冬萌和蜜嗒森嘿物寶噗常會有吃我噤吖住吖更噗嘿寶沒麼溫襲象咬眠肉襲取圖象嗒有怎嗅拙萌歡麼呦嗄嗒會溫麼意哞氏更人呱性冬捕拙吃樣擊麼人擊襲堅你嚄嚁沒吖喜誘呦嗚哞嚁盜哈物現捕噗哮和很物破蜜既喜呱嗅咯萌圖雜蜜物嗒類非囑覺常性嗥性象象嗄噔註。
姑且先不管这文字照着提示里面的看图片。
照例右键属性详细信息,拖入010中,好习惯Ctrl + F 查找flag,没有发现什么。再观察图片的宽高(因为提示里面提示过了所以直接看宽高)
在010中找到PNG图片宽高的方法:
PNG文件头知识
-
(固定八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头
-
(固定)四个字节00 00 10 0D代表数据块的长度
-
(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)
-
(可变)13位数据块(IHDR)
-
前四个字节代表该图片的宽
-
后四个字节代表该图片的高
根据这个找到代表宽高的八个字节 00 00 04 38 00 00 01 B6 ,把图片的高度改为和宽度相等(00 00 01 B6 改为 00 00 04 38),保存后重新打开图片。
可以看到完整图片的左下角有黄色字体的flag:SLsec{@you_are_mine}。
那么刚开始的文字是什么呢,让我们来翻译一下(熊曰解密),领悟熊所言得真谛:我小时候曾被海贼救了一命,那个人因此而失去左手。所以我绝对不会轻贱自己的性命。但是我有一个梦想,无论如何都要去实现。虽然很困难,不过既然是我自己下定决心的,就算因此而战死,我也甘心。我是要成为海贼王的男人!
2.1.3 找你妹啊!
点开题目,查看信息,下载文件。
添加后缀zip打开,发现有两个压缩包。
点开第一个,发现是一张小罗伯特唐尼图片,只有一半,先放着,再打开第二个压缩包,发现里面有一个txt文档,打开txt文档时发现需要密码,直接想到zip伪加密,把第二个压缩包拖入010中
根据文章zip伪加密原理及操作找到伪加密的代码块并修改,保存后txt文本就可以打开啦!打开后发现一段文字:公正公正公正友善公正公正民主公正法治法治诚信民主平等自由公正爱国公正敬业和谐平等平等友善敬业公正诚信自由和谐富强法治自由平等友善敬业法治自由法治文明法治平等公正平等文明民主文明民主文明民主法治友善法治。百度社会主义核心价值观加密
提交发现不对,转换战略看刚开始的那张图片,右键属性相信信息发现线索
拖入010中查看,老规矩先Ctrl + F 查找flag,直接找到。
2.1.4 大佬的奇妙冒险
点开题目,查看提示:提示一:“zip格式: 头:50 4B ?? ?? 14 00 00 00 身 :50 4B 14 ?? ?? 尾:?? ?? ?? ??”。 提示二:“伪加密的位置?”
下载文件改后缀打开,里面有一个压宿包和一个txt,点开txt查看发现是干扰信息,打开压缩包,里面有一张PNG图片,但打开时确有报错。
把这个压缩包拖入010中。
先,Ctrl+F一遍没任何发现,根据提示一发现文件头有问题,更改文件头为50 4B 03 04,再根据提示二可知设有伪加密,更改后保存再打开。就可打开图片了。
右键属性详细信息,没有收获,搜索CTF常见图片隐写,猜测可能是多图层水印,用工具stegsolve打开图片,一层一层的找,发现一个二维码。
扫描得到flag。
2.1.5 简单地压缩包
点开题目,读取信息,下载文件。
打开压缩包发现一个压缩包和一个txt,txt内容:“小明忘记了密码的一部分,只记得大概是这个样子,忘记的部分用问号标注avWg?yA?bewi
好像是字母和数字,肯定没有大写”,再点开压缩包,发现里面的文件都需要密码,拖入010中判断为真加密,那就只能暴力破解了,用工具ARCHPR打开加密压缩包,选中掩码攻击,范围选项勾选小写字母和数字,把密码复制到掩码框,然后开始破解,得到密码。
压缩包内还有一个txt和压缩包。txt内容:“小明忘记了这个压缩包有没有密码,好像是没有,但是为什么要输入密码呢?”,再打开压缩包,里面有三个文件,两个txt文档和一个名为flag的压缩包。其中只有flag压缩包和一个txt文档需要密码,打开不需要密码的txt文档:“小明忘了密码是啥了,但是记得是纯数字,并且大于五位”。得到提示,直接暴力破解flag压缩包,勾选数字,最小口令长度5,最大口令99,开始爆破,经过短暂的等待得到密码。
打开后得到flag。
2.2 CRYPTO类
2.2.1 四凯撒还四栅栏?
点开题目,阅读信息。
根据题目描述,可能为凯撒或者栅栏加密。复制后先去凯撒解密,设置秘钥为4。
发现密文不对,但只是位置变化了,直接栅栏解密,设置每组字数4。得到flag。
2.2.2 动听音符
点开题目,阅读信息,下载文件。
看了半天没有头绪,那就直接百度音符解密吧。
搜到了在线解密网站,解密后
发现很像base64加密,但后面没有“=”号不太确定,那就试试吧,得出flag。
2.2.3 小兔子
点开题目,查看信息,点开提示:“仔细看题目描述”。下载文件。
打开文件
没有头绪,直接百度兔子加密,搜索到了rabbit加密,发现需要密码,联想到提示,密码不会是今天的日期吧。密码输入20211126得到flag。
2.3 WEB类
2.3.1 签到
点开题目,查看信息,进入链接。
打开网页发现没有可用信息,那就看看源代码吧。
查看页面源代码得到flag
2.3.2 EZphp
点开题目,阅读信息,查看提示:“百度+题目描述”,点开链接。
打开网页发现
分析得到需要用GET方法传入一个参数a,并且a的值不能为数字和数字字符串,切当a的值为8848时才显示flag。
考点:PHP代码审计
知识:
PHP弱比较
在php中比较是否相等有两种符号:==和===。
其中==在比较时会将不同类型的变量或值转换为相同类型再进行比较。
而===则直接比较类型是否相同,如果同类型,再比较值。
PHPis_numeric()函数
用于检测变量是否为数字或数字字符串。是返回trul,否返回false。
PHPis_numeric()绕过
php中当一个其他数据类型和数值类型的数据比较大小时,会先将其他数据类型转换成数值类型,这里输入类似8848a数据也可绕过。
GET传参
在url后面加/?a=8848a即可传入。
所以用GET方法传入a=8848a即可得到flag。
3.3.3 1zMD5
点开题目,阅读信息,查看提示:“你知道Array吗?”,打开链接。
打开网页后,进行代码审计,需要用GET方法传入非空参数a、b并且只有当传入的a和b不相等且md5加密后的a强等于md5加密后的b才能得到flag。
考点:MD5加密、PHP代码审计
知识:
PHPisset()函数
用于检测变量是否已设置并且非 NULL。
PHPMD5===绕过
===会比较类型,这个时候可以用到PHP中md5()函数无法处理数组(会返回NULL)来实现绕过。附上MD5绕过链接 PHP中常见MD5绕过
所以传入两个数组绕过phpMD5强比较,在url后加/?a[]=111&&b[]=222,当if语句进行判断的时候因为md5返回null值,那就变成了if(null===null),得到flag。
2.4 REVERSE类
2.4.1 re签到
点开题目,查看信息,查看提示:“IDA分析源码 或者 从cmd窗口运行,硬玩 或者动动脑子,可以非预期”,下载文件。
下载文件添加后缀打开,得到一个后缀为exe得运行程序。
类似于一个小游戏,不过答错一次终端便会关闭,就要重玩一次,非常让人火大。根据提示在cmd中运行。
这样就不会退出了,还能看到之前的答案,玩到最后得到flag。
结语
网安不是那么容易学习的,但只要脚踏实地一步一步地积累,不断地记录遇到的问题,耐得住寂寞,那终有一天会有回报的!