HGAME部分wp只玩了前两周

第一周

MISC

Base全家福

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

解密base64

image-20210201205711260

解密base32

image-20210201205720624

16转字符串

image-20210201205747611

hgame{We1c0me_t0_HG4M3_2021}

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

附件是个图片

image-20210201205955749

搞下来查看16进制发现里面有隐藏压缩包和提示密码是8位数

image-20210201210035605

分离一下,爆破压缩包,得到密码70415155

image-20210201210705223

解压,查看文件发现里面提示是存储

image-20210201210755063

我们打开另一个压缩包发现里面也有一个NO PASSWORD的文件,根据提示我们将现有的NO PASSWORD.txt压缩,压缩方式改为存储

格式:ZIP

image-20210201210853486

进行明文攻击,得到密码C8uvP$DP

image-20210201211420641

解压出来zip压缩包,发现还是加密,放到winhex中发现有Unicode编码,而且压缩文件是伪加密,改一下即可

改成00

也可以不用改,因为右边已经显示了,直接去unicode解码即可

image-20210201211703981

Unicode解码

image-20210201211811715

hgame{2IP_is_Usefu1_and_Me9umi_i5_W0r1d}

Galaxy

附件是流量分析

根据题目提示说明有图片

文件—>导出对象—>HTTP

image-20210201212008181

得到图片另存为

image-20210201212047145

使用工具tweakpng改一下高度即可

也可以用010或者winhex改都可以

image-20210201212148107

hgame{Wh4t_A_W0nderfu1_Wa11paper}

Word RE:MASTER

得到两个word文档,其中有一个加密了

first.docx中的内容

image-20210201212513237

我们查看16进制发现是zip文件,改一下后缀

image-20210201212704102

发现有一个password.xml

image-20210201212738500

查看一下

image-20210201212759264

复制进行Brainfuck解密

image-20210201212916763

DOYOUKNOWHIDDEN?

这应该就是文档密码

打开发现只有一张图片

image-20210201213021602

将图片删除

文件—选项—>视图

image-20210201213044561

将格式标记全部打开

image-20210201213137580

看到是snow加密

image-20210201213151558

如果直接复制是复制不出来的

全选,右键点击字体,将隐藏取消

image-20210201213223755

新建一个flag.txt,随便命名都行

将snow加密复制进去,然后解密一下即可

image-20210201213344154

hgame{Cha11en9e_Whit3_P4ND0R4_P4R4D0XXX}

Crypte

まひと

下载附件,用记事本打开

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

摩斯解密

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

10进制转一下ASCII

V m l n Z W 5 l c m U t T G l r a T p 9 V m t t d k p i I T F Y d E F 4 Z S F o c E 0 x e 0 0 r O X h x e n J U T V 9 O a n 5 j U m c 0 e A = =

base64解密

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

维吉尼亚解密

秘钥LiKi

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

栅栏解密,分6栏

}!!Ch~K1z+LucNe9BGclEp_ynP1fF4Yp{rzntu

逆序一下

python脚本

def strReverse(strDemo):return strDemo[::-1]
print(strReverse('}!!Ch~K1z+LucNe9BGclEp_ynP1fF4Yp{rzntu'))# utnzr{pY4Ff1Pny_pElcGB9eNcuL+z1K~hC!!}

rot13解密

hgame{cL4Ss1Cal_cRypTO9rAphY+m1X~uP!!}

对称之美

直接上脚本

s=[99, 32, 55, 93, 35, 38, 17, 68, 0, 98, 32, 62, 120, 53, 17, 24, 73, 26, 61, 16, 57, 43, 0, 88, 89, 54, 33, 53, 120, 49, 15, 9, 4, 22, 32, 68, 61, 99, 10, 80, 89, 72, 40, 112, 40, 53, 10, 2, 29, 26, 32, 87, 110, 44, 23, 22, 29, 48, 40, 39, 49, 58, 4, 76, 11, 18, 34, 81, 32, 32, 0, 22, 28, 35, 42, 56, 120, 59, 23, 4, 12, 1, 110, 58, 33, 54, 17, 24, 89, 22, 33, 57, 43, 116, 0, 3, 28, 31, 42, 16, 44, 38, 69, 66, 17, 39, 105, 63, 58, 62, 6, 15, 29, 0, 110, 68, 38, 38, 8, 69, 28, 46, 63, 53, 43, 120, 67, 102, 11, 6, 58, 16, 39, 55, 69, 85, 24, 44, 105, 49, 52, 39, 12, 76, 27, 22, 34, 81, 58, 38, 69, 66, 22, 98, 42, 63, 52, 59, 17, 31, 73, 18, 32, 84, 110, 73, 10, 66, 17, 39, 59, 112, 59, 59, 14, 28, 6, 0, 39, 68, 39, 44, 11, 87, 21, 98, 61, 53, 59, 60, 13, 5, 24, 6, 43, 67, 96, 73, 60, 89, 12, 98, 36, 49, 33, 116, 13, 3, 29, 83, 60, 85, 47, 47, 12, 76, 28, 98, 32, 36, 116, 116, 1, 25, 29, 83, 55, 95, 59, 49, 69, 84, 11, 35, 32, 62, 120, 94, 10, 31, 73, 17, 59, 67, 55, 99, 18, 89, 11, 41, 32, 62, 63, 116, 1, 9, 1, 26, 32, 84, 110, 55, 13, 83, 89, 49, 42, 53, 54, 49, 16, 76, 29, 28, 110, 67, 43, 38, 14, 22, 115, 45, 60, 36, 120, 39, 26, 1, 4, 22, 58, 66, 55, 99, 18, 94, 28, 44, 105, 41, 55, 33, 67, 0, 6, 28, 37, 16, 47, 55, 69, 87, 89, 50, 40, 57, 54, 32, 10, 2, 14, 93, 110, 58, 26, 43, 0, 68, 28, 98, 40, 34, 61, 116, 16, 9, 31, 22, 60, 81, 34, 99, 23, 83, 24, 49, 38, 62, 43, 116, 5, 3, 27, 83, 58, 88, 39, 48, 75, 22, 45, 42, 44, 112, 82, 50, 10, 30, 26, 7, 110, 89, 61, 99, 17, 94, 24, 54, 105, 39, 61, 115, 17, 9, 73, 27, 47, 66, 42, 110, 18, 95, 11, 39, 45, 112, 44, 59, 67, 0, 6, 28, 37, 16, 40, 44, 23, 22, 115, 43, 61, 126, 120, 27, 22, 30, 73, 18, 32, 83, 39, 38, 11, 66, 89, 35, 39, 51, 61, 39, 23, 3, 27, 0, 110, 93, 47, 58, 69, 88, 22, 54, 105, 56, 57, 34, 6, 76, 1, 18, 42, 16, 68, 34, 69, 88, 24, 47, 44, 112, 62, 59, 17, 76, 0, 7, 98, 16, 44, 54, 17, 22, 13, 42, 44, 41, 120, 63, 13, 9, 30, 83, 58, 88, 47, 55, 69, 66, 17, 39, 32, 34, 120, 94, 12, 27, 7, 83, 44, 95, 42, 42, 0, 69, 89, 53, 44, 34, 61, 116, 1, 13, 26, 26, 45, 81, 34, 47, 28, 22, 10, 59, 36, 61, 61, 32, 17, 5, 10, 18, 34, 28, 110, 34, 22, 22, 115, 53, 44, 34, 61, 116, 23, 4, 6, 0, 43, 16, 33, 37, 69, 70, 22, 54, 44, 62, 44, 61, 2, 0, 73, 3, 60, 85, 42, 34, 17, 89, 11, 49, 105, 63, 42, 116, 19, 30, 12, 10, 96, 16, 68, 23, 13, 83, 11, 39, 47, 63, 42, 49, 79, 76, 29, 27, 39, 67, 110, 32, 4, 91, 28, 98, 32, 62, 120, 60, 2, 2, 13, 10, 110, 71, 38, 38, 17, 94, 28, 48, 105, 90, 59, 60, 12, 3, 26, 26, 32, 87, 110, 34, 69, 91, 24, 54, 44, 124, 120, 55, 2, 24, 10, 27, 39, 94, 41, 99, 1, 95, 23, 44, 44, 34, 120, 59, 17, 76, 99, 18, 56, 95, 39, 39, 12, 88, 30, 98, 43, 53, 49, 58, 4, 76, 6, 29, 110, 68, 38, 38, 69, 91, 28, 44, 60, 112, 55, 50, 67, 13, 73, 0, 32, 81, 60, 47, 12, 88, 30, 110, 105, 90, 48, 33, 13, 11, 27, 10, 110, 64, 47, 32, 14, 22, 22, 36, 105, 39, 55, 56, 21, 9, 26, 83, 33, 66, 110, 33, 0, 87, 11, 49, 104, 90, 12, 53, 8, 9, 73, 18, 110, 92, 33, 44, 14, 22, 24, 54, 105, 41, 55, 33, 17, 76, 15, 18, 45, 85, 110, 42, 11, 22, 13, 42, 44, 112, 53, 61, 17, 30, 6, 1, 110, 58, 47, 45, 1, 22, 16, 47, 40, 55, 49, 58, 6, 76, 8, 83, 34, 89, 32, 38, 69, 69, 13, 48, 40, 57, 63, 60, 23, 76, 13, 28, 57, 94, 110, 55, 13, 83, 89, 72, 36, 57, 60, 48, 15, 9, 71, 83, 23, 95, 59, 100, 9, 90, 89, 49, 44, 53, 120, 54, 12, 24, 1, 83, 61, 89, 42, 38, 22, 22, 22, 36, 105, 41, 55, 33, 17, 76, 99, 21, 47, 83, 43, 99, 4, 68, 28, 98, 57, 34, 61, 32, 23, 21, 73, 0, 55, 93, 35, 38, 17, 68, 16, 33, 40, 60, 118, 116, 55, 4, 0, 0, 110, 89, 61, 99, 111, 93, 23, 45, 62, 62, 120, 53, 16, 76, 11, 26, 34, 81, 58, 38, 23, 87, 21, 98, 58, 41, 53, 57, 6, 24, 27, 10, 110, 81, 32, 39, 69, 95, 13, 101, 58, 112, 82, 35, 11, 9, 27, 22, 110, 82, 33, 55, 13, 22, 10, 43, 45, 53, 43, 116, 6, 5, 29, 27, 43, 66, 110, 48, 12, 82, 28, 98, 38, 54, 120, 32, 11, 5, 26, 83, 68, 84, 39, 53, 12, 82, 16, 44, 46, 112, 52, 61, 13, 9, 73, 18, 62, 64, 43, 34, 23, 22, 20, 45, 59, 53, 120, 59, 17, 76, 5, 22, 61, 67, 110, 55, 13, 83, 89, 49, 40, 61, 61, 122, 105, 63, 6, 83, 38, 85, 60, 38, 69, 95, 10, 98, 61, 56, 61, 116, 5, 0, 8, 20, 116, 16, 68, 43, 2, 87, 20, 39, 50, 8, 104, 38, 60, 5, 92, 94, 47, 111, 59, 16, 86, 80, 44, 115, 98, 100, 54, 48, 71, 10, 60, 61, 32, 73, 17, 0, 84, 70, 49, 113, 59, 45, 82]
S="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
#检查字符是否是可打印字符或者换行符
def check1(s):if ord(s)>=32 and ord(s)<=126:return 1if ord(s)==10:return 1else:return 0
#得到key每位对应列表,如第一位,对应1,17,33..
def get_N(i):N=[]for j in range(i,len(s),16):N.append(s[j])return N
#检查key该为是否和对应列表每位都得到可打印字符
def check2(j,N):cout=0for i in range(0,len(N)):if check1(chr(N[i]^ord(j))):cout+=1if cout==len(N):return 1
#爆破key的16位,分别得到16位上可能的情况
for i in range(0,16):key=""for j in S:if check2(j,get_N(i)):key+=jprint(key)
#有的位置多种情况就再次爆破
s1="afghlopqrstvwz"
s2="0e"
s3="6e"
s4="01245678abcdefhjklmnopqrstuvwxyz"
s5="GHIJKLNOVZ"
s6="5lF"
for n in s1:for j in s2:for x in s3:for y in s4:for z in s5:for m in s6:key1="i"+n+"N"+j+"NC"+x+y+"yB"+z+"PXTc"+mflag=""key=67*key1for i in range(0,len(s)):flag+=chr(ord(key[i])^s[i])#要有hgame{和flagif "hgame{" in flag:if "flag" in flag:print(flag)print(key1)#key=isN0NCe6yBIPXTcl
hgame{X0r_i5-a_uS3fU1+4nd$fUNny_C1pH3r}

Transformer

下载附件是个压缩包,里面有个txt文件

内容如下:

Tqh ufso mnfcyh eaikauh kdkoht qpk aiud zkhc xpkkranc uayfi kfieh 2003, oqh xpkkranc fk "qypth{hp5d_s0n_szi^3ic&qh11a_}",Dai'o sanyho oa pcc oqh dhpn po oqh hic.

使用quipquip,替换一下

得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-anMepYAV-1615469986760)(HGAME_Misc.assets/image-20210202003821840.png)]

hgame{ea5y_f0r_fun^3nd&he11o_}

RE

一杯阿帕茶

明显的TEA加密标志,后面分析为XXTEA加密

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zdtXYJ5-1615469986760)(HGAME_Misc.assets/image-20210201201051733.png)]

加密后的数据,刚好35位

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRzSxzH6-1615469986760)(HGAME_Misc.assets/image-20210201201231341.png)]

#include 
#include #define DELTA 0x9e3779b9
#define MX (((z>>5 ^ y<<2) + (y>>3 ^ z<<4)) ^ ((sum ^ y) + (k[(p&3) ^ e] ^ z)))void XXTEA(int n, uint32_t* v, uint32_t* k)
{uint32_t sum, y, z;uint32_t p, rounds, e;if (n > 1) {rounds = 6 + 52 / n;sum = 0;z = v[n - 1];do {sum += DELTA;e = (sum >> 2) & 3;for (p = 0; p < n - 1; p++) {y = v[p + 1];z = v[p] += MX;}y = v[0];z = v[n - 1] += MX;} while (--rounds);}else if (n < -1) {n = -n;rounds = 6 + 52 / n;sum = rounds * DELTA;y = v[0];do {e = (sum >> 2) & 3;for (p = n - 1; p > 0; p--) {z = v[p - 1];y = v[p] -= MX;}z = v[n - 1];y = v[0] -= MX;sum -= DELTA;} while (--rounds);}
}int main()
{uint32_t arr[] = {3880694563, 3081185334, 1506439138, 2524759489, 3883935348, 1026381030, 2325545814, 2581382044, 1881594093, 1781792173, 4103492874, 1553756062, 468045900, 1730391575, 1383114178, 2890011402, 2227070898, 1885128569, 1548828056, 4214676013, 571971141, 1558401693, 3515474427, 3898332297, 1942540575, 1421197718, 3061626000, 555214026, 2648963476, 794468778, 2816999933, 3272437419, 464379036, 877899850, 2460223225};uint32_t key[] = { 1,2,3,4 };XXTEA(-35, arr, key);for (int i = 0; i < 35; i++) {printf("%c", arr[i]);}return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7dGRjBU3-1615469986761)(HGAME_Misc.assets/image-20210201201420062.png)]

Welcome to reverse world !

简单题,一个异或直接搞定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2netz4J-1615469986761)(HGAME_Misc.assets/image-20210201201736107.png)]

from ida_bytes import *def re():addr = 0x00007FF7F7513480flag = ''for i in range(22):flag += chr((0xff - i) ^ get_byte(addr +i))print(flag)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D9NJfCvH-1615469986762)(HGAME_Misc.assets/image-20210201201838100.png)]

pypy

给了我们python字节码,需要我们自己还原成python代码,下面贴还原过后的代码,加密过程很简单

import disdef input_func():raw_flag = input('give me your flag:\n')cipher = list(raw_flag[6:-1])length = len(cipher)for i in range(length // 2):cipher[2*i], cipher[2*i+1] = cipher[2*i+1] , cipher[2*i]res = []for i in range(length):res.append(ord(cipher[i]) ^ i)res = bytes(res).hex()print('your flag: ' + res)# print(dis.dis(input_func))

解密脚本

def Cip():flag = ''res = []cipher = '30466633346f59213b4139794520572b45514d61583151576638643a'length = len(cipher)for i in range(0, length, 2):res.append(int(cipher[i:i+2],16))for i in range(len(res)):flag += chr(res[i] ^ i)flag = list(flag)for i in range(len(flag) // 2):flag[i*2+1], flag[i*2] = flag[i*2],flag[i*2 + 1]for i in range(len(flag)):print(flag[i],end='')# hgame{G00dj0&_H3r3-I$Y@Ur_$L@G!~!~}

WEB

Hitchhiking_in_the_Galaxy

打开容器

image-20210202182700266

我们使用burp抓包,抓我要搭顺风车!的包

发现包405

image-20210202183653580

我们吧GET改成POST

image-20210202184002032

因为User-Agen后面跟搜索引擎我们看到提示是引擎,猜测放到User-Agen后面

image-20210202185153184

得到了另一个提示

说得从https://cardinal.ink/过去,看到网址就应该想到Referer

image-20210202185435699

说得从本地访问,直接使用XFF即可

image-20210202185507556

hgame{s3Cret_0f_HitCHhiking_in_the_GAl@xy_i5_dOnT_p@nic!}
注意

如果将数据放到最后,Response报错

image-20210202185650296

我们只需要将数据放到中间即可

image-20210202185820519

watermelon

打开容器发现是一个游戏,但是水果落下去看不见,所以如果想玩通关,有点困难

当两个一样的水果碰到一块就会消除加分

当结束会提示2000分得到flag

image-20210202203414078

这样就好办了,在谷歌Ctrl+Shift+F全局搜索一下1999

这个就是flag

image-20210202203705944

base64解密

image-20210202203740616

hgame{do_you_know_cocos_game?}

智商检测鸡

这个题做够100个就给flag

image-20210202203832430

hgame{3very0ne_H4tes_Math}

第二周

MISC

Tools

这道题有点像签到

下载附件查看图片属性得到

!LyJJ9bi&M7E72*JyD

我们看到压缩包名字是F5我们可以猜测到应该是F5隐写

使用命令

java Extract Matryoshka -p '!LyJJ9bi&M7E72*JyD' # e@317S*p1A4bIYIs1Mroot@kali

会得到一个文件,我们打开就会得到另一个密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90EaB8xq-1615469986769)(HGAME部分wp.assets/image-20210216094137607.png)]

解压压缩包,得到一部分二维码图片,压缩包文件名steghide

查看01的属性,得到一个密码,进行steghide解密

steghide extract -p 'A7SL9nHRJXLh@$EbE8' 01.jpg # u0!FO4JUhl5!L55%

再次进行解压,得到一个outguess

在进行解密

outguess -k 'z0GFieYAee%gdf0%lF' -r 02.jpg flag.txt# @UjXL93044V5zl2ZKI

再次解压,得到JPHS

查看图片属性,得到密码。进行JPHS解密

xSRejK1^Z1Cp9M!z@H

得到二维码,进行拼接起来,扫描得到flag

image-20210216094815037

Telegraph:1601 6639 3459 3134 0892

这个题比较简单,是个音频,里面有摩斯电码,只是摩斯电码有一部分比较模糊

image-20210216191104683

-.-- --- ..- .-. ..-. .-.. .- --. .. ... ---... ....- --. ----- ----- -.. ... ----- -. --. -... ..- - -. ----- - ....- --. ----- ----- -.. -- .- -. ----- ...-- ----. ...-- .---- ----- -.- ..

解密就得到了flag

image-20210216191308695

YOURFLAGIS:4G00DS0NGBUTN0T4G00DMAN039310K

Hallucigenia

这个也比较简单,下载附件得到一个图片,放到StegSolve中,查看通道,会得到一个二维码,反色一下

image-20210216191939446

扫描得到base64内容

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

解密发现,PNG倒过来了

image-20210216192018647

如果直接复制解码进行倒序输出的话无法组成图片

我们使用CyberChef里面的base64解密,然后保存成dat格式

image-20210216192220854

使用python脚本,倒序一下即可

f = open('flag.png','wb')
with open('download.dat','rb') as file:f.write(file.read()[::-1])f.close()

image-20210216200435950

翻转一下即可

image-20210216200532634

hgame{tenchi_souzou_dezain_bu}

DNS

下载附件,得到流量分析文件,放到wireshark里面,我们看到题目名字是DNS,直接筛选一下

image-20210216202629359

发现有flag.hgame2021.cf

我们在页面中查看一下这个地址

发现会弹窗

image-20210216202736532

查看源码

提示了SPF

image-20210216202800239

SPF经过我们百度发现是TXT记录,我们使用nslookup命令查看,得到flag

nslookup命令是用于查询DNS记录的,查询域名解析是否正常等等。

image-20210216202918072

WEB

LazyDogR4U

打开容器,发现是登录框,我们使用dirsearch扫描一下,发现有www.zip

审计一下代码,在flag.php找到了获取flag的方式

$_SESSION['username'] === 'admin'的时候得到flag

if($_SESSION['username'] === 'admin'){echo "

admin将于今日获取自己忠实的flag

"
;echo "

$flag

"
;}else{if($submit == "getflag"){echo "

{$_SESSION['username']}接近了问题的终点

"
;}else{echo "

篡位者占领了神圣的页面

"
;}}?>

lazy.php中进行了变量覆盖,将_GET_post传入的变量全部变成为普通变量


$filter = ["SESSION", "SEVER", "COOKIE", "GLOBALS"];// 直接注册所有变量,这样我就能少打字力,芜湖~foreach(array('_GET','_POST') as $_request){foreach ($$_request as $_k => $_v){foreach ($filter as $youBadBad){$_k = str_replace($youBadBad, '', $_k);}${$_k} = $_v;}
}

这样我们就可以根据flag.php中的_SESSION['username'] === 'admin'进行变量覆盖

payload:_SESSION[username]=admin

因为lazy.phpSESSION给替换为空白,所以我们进行双写绕过即可

这里的键名不能加引号。

最终payload:flag.php?_SESSSESSIONION[username]=admin

得到flag

hgame{R4U_1s~a~LAZy-D0g}

yle=‘color: white’>篡位者占领了神圣的页面";
}
}
?>


`lazy.php`中进行了变量覆盖,将`_GET`,`_post`传入的变量全部变成为普通变量```php
 $_v){foreach ($filter as $youBadBad){$_k = str_replace($youBadBad, '', $_k);}${$_k} = $_v;}
}

这样我们就可以根据flag.php中的_SESSION['username'] === 'admin'进行变量覆盖

payload:_SESSION[username]=admin

因为lazy.phpSESSION给替换为空白,所以我们进行双写绕过即可

这里的键名不能加引号。

最终payload:flag.php?_SESSSESSIONION[username]=admin

得到flag

hgame{R4U_1s~a~LAZy-D0g}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部