HGAME-Week1-writeup
1.web
1.Hitchhiking_in_the_Galaxy
网页f12发现 /HitchhikerGuide.php , 抓包发现 302, 于是在 Linux 中用 curl 命令访问这里,发现 405 那么就改用 post 请求方式

刚开始看到这句话后没有一点想法,就去看了看发的学习资料,看到 user-agent 后意识到应该是要加这个头 (因为引擎) , 内容是那串英文
.png)
仅能通过本地访问 , 那么就再加一个 x-forwarded-for 头 , 最后说要从茄子学长的网站过来 , 再加一个 referer 头,得到 flag
.png)
2.watermelon
打开网页发现是合成大西瓜, 玩了一遍发现要达到2000分才能得到flag, 于是毫不犹豫地抓包(可惜接受不到分数,是为什么我也不清楚) 抓包不行那么就只能修改 js 代码,然而在我试图修改的过程中发现

把网页变成这样就能轻松玩到2000分! (到底怎么改js代码我不太清楚,应该是要找到存储分数的变量,然后在 console 里修改…..)
得到 flag
.png)
3.宝藏走私者
先拿着学习资料学习了一下,之后点开网页点击 secret data 跳转到另一个界面,提示要是 localhost ,于是加了 host 头

意外的就得到了 flag (不知道怎么得到的, 好像跟学习资料无关?)
4.智商检测鸡
用 firefox 浏览器打开网页发现要做100道定积分才能得到 flag, f12看到网页源代码,里面有个 getflag() 函数
在 console 输入后,弹出一句话(是啥我忘了) , 得知这样不行,于是我就搭配定积分计算器解完了这100题,得到 flag (之后看r4u学长发的学习资料,觉得应该是 python 爬虫一类的,可惜我 python 还不太会,只能手动解题了)
web 总结: web 开始的时候是真的一点都不会, watermelon 和定积分都不是通过 web 知识解的, burp 也是前几天刚装的(安装花了一天…),总之学到了很多
2.reverse
1.apacha
应该是这周 re里最难的(但其实也不是太难),首先用 ida 打开文件并初步分析
.png)
关键部分在第25和第26行的两个函数
.png)
第一个关键函数,刚开始看觉得挺复杂的后来发现了 tea 型加密算法的特征,查资料猜测这应该是 xxtea 加密算法
.png)
第二个关键函数,判断输入是否为 flag 。加密后的 flag存在unk_501C , 每四个字节一组
之后就是写脚本解密,于是在网上找了一个现成的脚本( c语言),改了一下就得到 flag(这里有个地方需要注意,因为是小端序所以 ida 中加密的数据每四个字节要逆序才是真正的加密数据)
1 |
|

2.helloRe
这题不难,只是有点 c++ 的语法,同样 ida
.png)
关键在中间的异或操作,写个脚本就能得到结果

3.pypy
这题考的是 python 字节码,刚开始看的时候还不太懂python语法花了点时间去理解,通过 dis 文档来分析每一条语句,大概还原了一下

理解之后就是用脚本解题,再加上 hgame{} (刚开始交的时候忘加了)
.png)
3.pwn
1.whitegive
下载,在 Linux 中用 gdb 调试,得知输入数字在栈中的的存储位置为 0x7ffffffffde50
.png)
继续调试,发现最后 if 语句比较的是 rax 和 rdx 的值,而此时 rax 存储的是 ‘paSsw0rd’ 字符串的地址,那么只要输入这个地址的十进制值就能使条件成立
.png)
.png)
nc连接,cat flag(的确挺白给的,毕竟我都能做)
pwn 总结:我也太菜了只解出白给题 ,看了最后一题但不太会 rop , 总之这周就稍微学习了一下怎么写 pwn 的脚本和一些基础知识以及安装工具
4.crypto
2.对称之美
打开链接下载 python 文件
key 是在 ascii 字母和数字里随机选取16个组成,而 cipher 是由明文与循环的 key 异或得到的密文
根据异或特性知道密文与循环的 key 异或就是明文,那么这道题重点就是求出一组 key 。多次下载附件发现 cipher 各不同,那就利用多个密文写脚本爆破得到前16位明文
1 | table = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" |
知道前16位明文,那就可以求得一组 key ,并得到 flag,过程同样是写脚本

.png)
Get flag!
3.Transformer
下载,发现其中一个文件中有flag形式的字符串,还有两个文件分别存储明文和密文,虽然顺序是打乱了的
接下来就采用传统的人工查找明文和密文一一对应的方式得到flag
当然那个 txt 文件最后解密还提示 flag 后面要加上年份2021才正确
(搜了一下题目发现是人工智能模型,我只有人工没有智能……)
crypto 总结:没想到最后竟是第一题没解出来,本来以为第二题解不出来反而解出来了。这周稍微学了点怎样写解密脚本,收获挺大
5.misc
1.Base全家福
题目中提到 base家族,查资料得知有不只有 base64 ,再根据不同 base 加密字符的特征多次解密

如图所示,得到 flag
2.不起眼压缩包的养成的方法
打开得到图片,题目中提到了压缩包,猜测能从图片中得到压缩包,于是在 linux 中用 binwalk 检测发现了压缩包,并用 foremost 命令分离出来
.png)
分离解压后得到
.png)
发现得到里面的文件需要密码,那就用百度识图来获取之前得到的图片的p站id解密。之后点进plain.zip发现又需要密码,并且发现plain.zip里有flag.zip和相同的NO PASSWORD.txt文件,猜测是利用明文攻击解密,用相同的方式压缩已得到的NO PASSWORD.txt。
根据提示storage,用仅存储的方式压缩(刚开始不知道storage是存储等级所以卡了一会儿,问了学长后才知道) 再用ARCHPR进行破解,得到口令和密钥,最后得到flag.zip的内容。16进制转字符串,得flag
3.Galaxy
打开连接下载,得到以**.pcapng**为后缀的文件,之后用 wireshark 打开
.png)
如图所示,导出 http 流
.png)
找到了遗失的 galaxy 图片,在 windows 下能正常打开,但之后把图片放到 linux 中,想用 binwalk 分析的时候发现在 Linux 下无法打开图片。
上网查资料得知图片的高和宽可能被修改,与原来 crc 值不匹配才报错。于是在网上找了个脚本,得到正确的高宽
.png)
然后就用 winhex 修改高和宽并保存

得到 flag!

4.Word RE:MASTER
下载得两个文档,发现其中一个文档加密了,那就先打开另一个文档
在 first.docx 文档中发现了 brain 和 fuck 两个单词,猜测有brainfuck 加密,但是之后因为不知道密文卡了很久,尝试用 winhex 打开另一个文档得到

我以为这就是密文了,于是就开心的拿去解密网站解密(当然这是错的)
问了Akira 学长后发现这密文缺少了前半部分,只能转用别的方法。首先尝试把第一个文档的后缀改为 zip ,打开后竟发现
.png)
丢到网站解密后得到 DOYOUKNOWHIDDEN? ,用这个打开第二个文档
因为这个文档密码是 DOYOUKNOWHIDDEN? ,所以立马显示 word 的隐藏字符,得到
.png)
一堆空白字符,由空格和制表符组成,这里我用箭头和点表示
这之后就卡了很久(大概一天多……),我甚至尝试用二进制01表示,实在想不出来了于是去问学长,提示我搜一下第二个文档图片中出现最多的字的英文(之前一直盯着图片内容看,以为hint是音游梗,果然是我想太多orz)
接着就搜索snow,知道了空白字符的隐写,上工具解密
.png)
misc总结:拿到题目后完全没思路,所以在这一周中查了很多资料,觉得自己就是个菜鸡,好在最后全部解了出来,也学到了很多东西
HGAME-Week1-writeup