首届“神盾杯”上海市网络安全竞赛,去年的比赛。
0x00 babyJS
操作内容:
查看源码 找不到被调用的CheckLogin函数

看到script中有用到unespace和escape等函数 用于编码字符串
将eval传参改为alert 显示为弹窗

发现check函数 并将flag与用户输入做比较 得到flag

FLAG值:
flag{a5a5f402f6dc62acd3e848900a17513f}
0x01 crypto_easy_1
操作内容:
下载文件

发现3行类似的数据 并且长度一致。
:左边的长度为42 右边的长度为56 ,猜测右边被base64编码过 进行解码 比较长度

长度一致 为42
异或运算一下 可以得到Key随后将key代入 与base64解码后的密文异或比较 得到flag
解密脚本如下:
import base64
x = 'v6"wo5UIP9c4IdCk1o6qZhhB5DKZhVBwBzONl1JRIz:TwB2RyZYBCEVbjBjID17UkUeeDAwPBh1dg86AyAgcSQ4QygYGnAuJQYw'
y = 'zjS0ubQE2hw29FL2qs61ZNOVyFaf6IAjUZ7X8ijuVg:Q1wHADwPAC13PyRlUB90CwUCeHAwGj9hOg0QP34/cjkvY1AOTigOAhkt'
z = 'pJryZpVUNpSFi06WlKGkS0Uka6zw1sNCX"h2urQoyg:SXwmSRMdBz0LJwARAGkObhg6CSo5ZCVcIn0LLnkFfRAiGw9kAzM1GDYt'
a, b = x.split(':')
c, d = y.split(':')
e, f = z.split(':')
b = base64.b64decode(b)
d = base64.b64decode(d)
f = base64.b64decode(f)
g = base64.b64decode('X1o1VzIPaVgjbmNvCnQAC0ZHY3BbMUkaeylDYWVOCzZDXwJjR3hTFiw3')
flag = ''
for i in range(42):
t = ord(a[i]) ^ ord(b[i])
flag += chr(ord(g[i]) ^ t)
print(flag)
FLAG值:
一开始想到的是
这里没啥思路只能爆破
密码为orange 访问到另外一个页面 然后登录。 发现是一张迪丽热巴的图片 这个主管很喜欢迪丽热巴啊!!
将图片下载下来,用
这个地方解了很久发现使用Dilraba的md5。。。。
得到一张图片再一次foremost得到一个压缩包成功拿到flag
2.题目:单身二十年


访问页面发现是一个thinkphp5.0 一猜就是sql注入
一开始以为是构造一个注入然后load_file到flag后来发现想多了,直接通过payload拿到mysql账号密码
主页查看源码发现有一个phpmyadmin,登陆后成功拿到flag
