第一天

Crypto

Sign_in_passwd

换表base64,cyberchef直接出

img

flag:flag{8e4b2888-6148-4003-b725-3ff0d93a6ee4}

Web

unzip

参考https://forum.butian.net/share/906 ZIPIZP

通过软链接进行getshell

先创建软链接链接到/var/www/html

img

再压缩上传

img

然后再创建一个在cmd目录里面的shell文件,来直接链接到/var/ww/html目录下进行解析

img

再访问cmd.php即可成功

img

蚁剑连接,这里连接不成功是因为shell编写问题,里面加个引号即可

img

img

img

img

flag:flag{8ae370da-8712-4949-83ff-43205fa189bf}

第二天

Re

补充:下面两题忘了具体哪个是哪天的了,问题不大

babyRE

拿到安卓的系统文件,题目还给了网站,是个wifi后台登录界面,我们先看看系统文件,发现app文件夹里有很多apk,但是都有对应的odex文件

image-20230712150621015

在pri-app文件夹中发现一个没有odex文件的apk,结合百度,确定这就是连接那个wifi后台的关键apk,这里的jobf是我用jadx反编译出来的文件

image-20230712150630135

image-20230712150635383

搜索还找到个帖子,里面和我们的题目非常像

https://www.mydigit.cn/forum.php?mod=viewthread&tid=288812&page=1

但是这里教的是如何破解切换sim卡的密码,我们要的是后台密码,就去帖子里提到的功能附近翻找,找到了adminlogin的类,进去找到了password,就是AdminLogin

image-20230712150649909

但是登录进去发现什么也没有,发现固件升级的上传点,一开始以为要找文件系统漏洞,刷固件getshell,后来感觉这是逆向题,应该不是这么做的,于是回到apk找是否有可利用的点

image-20230712150659696

最后在webserver这里找到有路径的拼接,那么就有目录穿越的漏洞,尝试去读根目录下的flag

image-20230712150706975

image-20230712150715729

flag:flag{15131359-6d71-45d3-b2ad-73e2f2335a7c}

babyRE

这题看起来很唬人,其实很简单,一开始我慢慢去看发现前面没什么东西,在最后面找到个flag,但是这个一看就是假的,结合下面的数组,还有flag的name是key,我尝试将这两个按位异或一下,发现异或出来的结果就是上面的flag本身,不过向后推了一位

image-20230712150803984

image-20230712150813176

我就知道是每一位异或前一位得到结果了,正好在最后往前看一点能看到个数组,但是这个操作向不同位置插入数据,手动有点慢,直接交给GPT

image-20230712150826012

最后GPT返回给我一堆插入的操作,写个解密脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
secret = []
secret.insert(0, 92)
secret.append(92)
secret.append(8)
secret.append(28)
secret.insert(0, 20)
secret.append(25)
secret.insert(0, 75)
secret.append(81)
secret.append(83)
secret.insert(0, 0)
secret.append(7)
secret.append(28)
secret.insert(0, 85)
secret.append(76)
secret.append(88)
secret.insert(2, 4)
secret.append(9)
secret.insert(0, 7)
secret.append(0)
secret.append(29)
secret.append(73)
secret.insert(0, 1)
secret.append(0)
secret.insert(1, 3)
secret.append(86)
secret.append(4)
secret.insert(0, 74)
secret.append(87)
secret.insert(1, 3)
secret.append(87)
secret.append(82)
secret.insert(0, 28)
secret.append(84)
secret.append(85)
secret.insert(1, 6)
secret.append(4)
secret.append(85)
secret.insert(0, 13)
secret.append(87)
secret.insert(0, 10)
secret.insert(0, 102)
secret.append(30)
print(secret)
for i in range(len(secret)-1):
j=i+1
secret[j]=secret[j]^secret[i]
for i in secret:
print(chr(i),end='')

image-20230712150846482

不知道这里的g为什么变成了}

flag:flag{12307bbf-9e91-4e61-a900-dd26a6d0ea4c}

Misc

问卷

image-20230712150934158

flag:flag{TalentDevelopment}

Web

dumpit

这题考点在mysqldump上面

根据提示我们传db的参数和table_2_query的参数

image-20230712151004572

根据flag1,我们继续往后看,发现flag5和flag6提示我们去rce

image-20230712151054062

image-20230712151101228

但是我还是去构造了一下看看能否盲注出来,用了if和load_file

if(ascii(substr((select load_file(‘/flag’)),1,1))==102,1,0)

但是发现好像读不出来,如果只load_file的话是能够正常回显的,不知道是不是payload问题,然后我就去找这个dump,搜索到了mysqldump

参考 https://blog.csdn.net/hemeinvyiqiluoben/article/details/126315393

image-20230712151123224

猜想是否是写入的参数直接被拼接到已经构造好的语句中,我尝试直接-r写入文件

image-20230712151136812

发现没有报错,这里php内容如果有分号,命令会报nop错误

访问cmd.php,在env中找到flag

image-20230712151149213

flag:flag{9278dca1-4b5a-4f44-96ff-9135fc20a885}