Zry.IO

返回

web

Are you from Europe? [100]

血统检测 签到题,在网页脚本的 getCard 函数内 var SR = 0.15 处下断点

web_1_1.png

点击召唤按钮,在控制台将变量 SSR 的值修改为 1

web_1_2.png

恢复运行即可一次抽到 SSR,从而得到 flag

Flag: hgame{Th3_Ch0seN_0nE!}

special number [100]

分析给出的 php 代码,可知需要利用 php 弱类型特点

其中 json_decode 函数在处理以 0e 开头的字符串时会将其解释为浮点型 0

$ php -r "var_dump(json_decode('0e1111111'));"
float(0)
shellsession

之后在使用 == 比较 flag 字符串变量 $lock$b 时会先进行类型转换再行比较,导致结果为真,从而得到 flag

$ php -r "var_dump('test' == json_decode('0e1111111'));"
bool(true)
shellsession

web_2_1.png

Flag: hgame{pHp_w34k_typing_s000_e4sy}

can u find me? [50]

根据提示,像搜索引擎爬虫机器人一样访问 robots.txt,可以看到禁止了 f1aaaaaaaag.php 页面的爬取

web_3_1.png

访问 f1aaaaaaaag.php,根据提示,将 Cookie 中 user 的值修改为 admin 再行访问,即可获得 flag

web_3_2.png

Flag: hgame{78e01ee77a39ef4e}

tell me what you want [100]

根据每步所给提示,需要通过 POST 方式提交参数 want,并设置 HTTP 请求头 X-Forwarded-For: 127.0.0.1User-Agent: aaa Icefox/57.0 aaaReferer: www.google.comCookie: user=admin,即可获得 flag

web_4_1.png

Flag: hgame{For9e_hTTp_iS_N0T_HArd}

我们不一样 [50]

分析给出的 php 代码,可知需要利用 php 弱类型特点

提交参数 str1str2[] (str2 后加上表示数组的一对中括号),即可使 strcmp 函数返回 NULL,使之后的判断结果为真

web_5_1.png

Flag: hgame{g3t_f14g_is_so0000_ez}

reverse

re0 [50]

签到题,使用 IDA 载入程序,搜索关键词即可获得 flag

re_1_1.png

Flag: hctf{F1r5t_St5p_Ls_Ea5y}

misc

白菜1 [50]

签到题,在 Stegsolve 中打开图片,使用 Analyse -> Data Extract 功能,选取 Bit Planes 中 Red、Green、Blue 的第 0 位,Bit Order 选择 LSB First,即可看到提取出的数据中存在压缩文件的 50 4B 文件头,点击 Save Bin 按钮可将数据导出

misc_1_1.png

将导出的数据文件解压即可获得 flag

misc_1_2.png

Flag: hgame{4246a2158c280cdd1e8c18c57e96095f}

白菜2 [50]

还是签到题,使用 binwalk 即可提取隐写的文件,获得 flag

$ binwalk -e misc2.jpg

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
1037199       0xFD38F         Zip archive data, at least v2.0 to extract, compressed size: 41, uncompressed size: 39, name: flag.txt
1037368       0xFD438         End of Zip archive
shellsession

misc_2_1.png

Flag: hgame{af2ab981a021e3def22646407cee7bdc}

pacp1 [50]

基本的流量分析,使用 Fiddler 或 WireShark 载入数据包,即可找到访问 /flag.php 的数据,从而获得 flag

misc_3_1.png

Flag: hgame{bfebcf95972871907c89893aa3096ec6}

crypto

easy Caesar [50]

签到题,包含数字的 凯撒加密,python 脚本如下

在结果中查找有意义项,即得 flag

crpto_1_1.png

Flag: hgame{The_qu1ck_br0wn_4x_jUmps_ovEr_a_La2y_dOg}

Polybius [50]

Polybius 密码,据表编写 python 脚本即可解出 flag

crpto_2_1.png

def decrypt(cipherText, key, letters):
    plainText = ''
    for i in range(0, len(cipherText), 2):
        keyIndex = letters.index(cipherText[i]) * 5 + letters.index(cipherText[i + 1])
        if (keyIndex >= 0): plainText += key[keyIndex]
    return plainText


cipherText = 'FDXDGDADDGFXXFAAXFAGGDFXFFXFFXADXFDAGDAD'
key = 'btalpdhozkqfvsngicuxmrewy'
letters = 'ADFGX'

print(decrypt(cipherText, key, letters))
python

Flag: hgame{fritz_nebel_invented_it}

Hill [50]

Hill 密码,编写 python 脚本即可获得 flag

Flag: hgame{overthehillx}

confusion [100]

多重加密,首先可以看出密文是 摩斯电码,解码后得到 MRLTK6KXNVZXQWBSNA2FSU2GGBSW45BSLAZFU6SVJBNDAZSRHU6Q====

进行 base32 解码,得到 dW5yWmsxX2h4YSF0ent2X2ZzUHZ0fQ==

进行 base64 解码,得到 unrZk1_hxa!tz{v_fsPvt}

进行栅栏解码,查找结果中类似 flag 格式的密文 utnzr{Zvk_1f_shPxvat!}

进行凯撒解码,即得 flag

Flag: hgame{Mix_1s_fuCking!}

baby step [66]

利用 BSGS (baby-step giant-step) 算法,编写 python 脚本即可解出 flag

Flag: x1337

HGAME2018 - Week 1 writeup
https://zry.io/zh/ctf/hgame2018-week-1-writeup
作者 zry98
发布于 2018年2月11日