HGAME 2019 Writeup(部分)

HGAME 2019是我参加的第一个正式的比赛,最后拿了73名,我还是太菜了啊…… 这是一部分Writeup,还没全写完平台就关了,囧 如果有不对的地方还请各位大神多多指教

只有一部分,我并没有全都做出来,做出来的也没有全都写完。

Week1和Week2的居多,到后面越来越难就不会了……

Week 1

注:以下所有无标记的都是Web题。

谁吃了我的flag

考察vim异常退出产生.swp文件的知识点。

刚做这道题目的时候还没有hint,看到“没有好好关机”联想到可能是vim异常退出,这时候会有.swp文件泄露,所以构造?.index.html.swp,果然有这个文件。

下载下来用记事本打开,找到flag。

换头大作战

考察HTTP请求方法、HTTP请求头。

打开看到一个输入框,先随便打点东西提交一下。

提示请求方法不对,那么使用POST方法提交。

提示only localhost can get flag,那么要在请求头中添加X-Forwarded-For:127.0.0.1。

抓包,改请求,发送。

提示需要用Waterfox/50.0(水狐还行hhhhhh)

做到这里估计还需要多次编辑请求头,所以再次抓包,使用Burpsuite的Repeater模块完成接下来的工作。

这里需要改User-Agent,改完了之后发现Referer需要改成B站的地址(B站还行hhhhhh)

改了之后发现you are not admin。根据以前做题的经验,在Cookie中发现了admin=0.

改成admin=1,成功拿到flag。

very easy web

很简单的PHP代码审计,考察URL二次解码绕过。

根据代码,id在urldecode之后需要等于vidar,但id自身不能等于vidar。

由于%的urlencode为%25,v的urlencode为%76所以构造?id=%2576idar,提交拿到flag。

can u find me?

考察查看网页源代码和查看请求头、302跳转。

进去看到“the gate has been hidden”,根据以前的家经验猜测链接可能在网页源代码里,打开网页源代码找了找发现了一个链接。

访问这个链接,发现要求我们post“password”,找了半天没找着,猜测可能在响应头里。

抓包,Ctrl+R,Go,发现了password。

把password提交上去,给了一个链接,点进去提示too fast,在F12的网络监视器里发现了一个302跳转。

看来flag应该在那个页面的源代码里。应该可以用view-source做,不过我这里还是抓包,Ctrl+r,Go得到了flag。

HelloRe(Reverse)

最基本的逆向,考察使用IDA的反汇编功能查看源代码。

下载文件,用IDA打开,按F5反汇编,在main函数里发现了flag。

Pro的Python教室(Reverse)

最基本的Python逆向题,看懂代码就能做。

(You're so vegetable还行hhhhhh)

根据代码,enc2用BSAE64解码之后与enc1,enc3拼起来就得到flag。

hgame{Here_1s_3asy_Pyth0n}

Mix(Crypto)

这个加密一共五层,考察各种密码、编码的解密与解码。

第一层是摩斯密码。

第二层是BASE16编码。

第三层是栅栏密码。

第四层是凯撒密码。

perfect_secrecy(Crypto)

考察OTP的破解。

打开链接可以看到秘钥和密文,方括号里是密文。

破解这玩意的脚本我还写不出来,所以只好从网上搜了一个脚本,用脚本破解。

把这句话还原为有意义的英文,加上格式就得到flag。

Hidden Image in LSB(Misc)

考察图片隐写中的LSB隐写。

用StegSolve找一找得到flag。

打字机(Misc)

这大概是个社工题……

解压zip文件发现两张图,一张是flag的文字,一张打字机的图。

很不巧我有flag那张图的字体,所以这题对我来说就相当于送分了。。。

(看来出题人也喜欢京紫)

Broken Chest(Misc)

考察zip文件的格式。

直接打开提示报错,用WinHex打开发现格式不对,修改前四位为504B。

修改完成后保存,再解压时提示输入密码。在注释里发现一个字符串,这个就是压缩包的密码。

解压后在flag.txt里找到flag。

Try(Misc)

考察流量分析和破解压缩包密码之掩码攻击。

打开流量包,找到了一个zip文件。

把这个文件导出,解压,发现一个加密的压缩文件和一个密码。

提示密码的前五位是hgame,后八位未知,因此可以使用掩码攻击。

用ARCHPR的掩码攻击功能尝试破解,发现选择纯数字时成功得到密码。

解压,发现一张图片。

用Winhex看了看发现有一个1.docx,所以这个图片应该是一个压缩文件。改后缀为.zip。

又提示需要输入密码。由于没有任何提示,推测是zip伪加密。使用winrar的修复功能成功修复。

解压这个文件得到一个1.docx,打开发现flag。

其实flag本来是隐藏起来的,但是我以前设置过显示隐藏文字,就直接看到了……

Week 2

easy_php

考察使用文件包含漏洞读取网页源代码。

打开之后什么也没发现,但是标题是“Where is my robots”,所以查看robots.txt。

可以看到给出了源代码所在的路径。

看到源代码了(CL社区还行hhhhhh)。

可以看出是一个文件包含漏洞。

本来以为这个CL社区的图标有用的,但后来发现没啥用。

在这里卡了很久,后来在大佬的帮助下发现构造?img=..././flag时有反应。

又卡了很久,直到从一个大佬那看到了这个资料:https://blog.csdn.net/nzjdsds/article/details/82936045才知道原来是需要通过php内置协议暴露网页源代码。

构造?img=php://filter/read=convert.base64-encode/resource=..././flag,得到了BASE64编码的网页源代码。

解码拿到flag。

又学到了一招。

浪漫的足球圣地(Crypto)

考察曼彻斯特编码的解码。

没给任何提示,百度了一下浪漫的足球圣地,是曼彻斯特,难道有曼彻斯特编码?百度了一下,还真的有……

参考了这篇资料:https://blog.csdn.net/hhhparty/article/details/51873342

按照文中所述的第二种方法将编码转化为二进制,再转化为文本就可以得到flag。

Vigener~(Crypto)

考察维吉尼亚密码的解码。

直接从网上搜了个脚本爆破,得到的有意义的字符串中有“the flag is”,后面的字母转化为小写就得到flag。

貌似字母大写是爆破用的脚本的问题。

Week 3

听听音乐?(Misc)

考察音频隐写。

将题目中的音频下载下来,用Audition打开,发现正常音频的后面有摩斯电码。

把这段摩斯电码解码,再将其中异常的几个字母转化为字母对应的数字,得到flag。

至少像那雪一样(Misc)

考察图片隐写、压缩包密码破解方法之明文攻击、doc文档隐写、二进制转字符串。

把图片下载下来,Stegsolve什么也没发现,用winhex打开发现504B0304,说明这是个图种。

504B0304往后的部分提取出来,单独存为一个压缩文件。

压缩包有加密,试了一下不是伪加密,但看到压缩包里还有一张与下载下来的图片名字一样的图,说明应该是明文攻击。

直接把下载下来的图片压缩,得到的CRC32校验值与压缩包中图片的不一样,但是删除掉FFD9后面的内容,再用winrar压缩,就可以得到一样的CRC32校验值了。

使用ARCHPR的明文攻击功能恢复密码。

用word打开压缩文件里的flag.txt,只有一堆貌似是空格和tab的东西,显示制表符和空格可以得到一些信息。这里面只有tab和空格,那这个加密就不外乎摩斯密码、培根密码和二进制了。

试了几次,发现把tab转换为0,空格转换为1时可以得到flag。

旧时记忆(Misc)

果然是个脑洞题……考察的大概是收集信息的能力?

打开图片发现不知道是什么东西,但貌似是用打孔来表示信息的,只能想到最早的计算机用打孔的纸带当做输入媒介,后来问了问大佬才知道这个是打孔卡上的几个不同的数字、字母和特殊字符组成的。

找了张打孔卡的图对着看,将题目图中的信息还原为字母和特殊字符,得到了flag。

评论

发表评论