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。