Web
gob
题目描述:php是世界上最好的语言
首先打开靶机是这样的:
随便填了个admin,密码为空就进去了
发现有个upload,那么可能跟文件上传有关:
然后随便上传几次,会发现上传以后,有你上传文件的路径以及这个文件。然后如果这个文件存在,会把这个文件的内容base64编码以后以图片的方式包含进来,所以我们使他上传的文件为../../../../../flag,会给我们一个Set-cookie,然后写到请求报文里,得到flag 经过base64加密后的内容:
Crypto
bbcrypto
题目:
从题目很明显可以看出密文的加密过程,那么先拿出f l a g {
这几个,模仿加密,得到a = 57
,然后salt = 'ahh'
。
然后直接写了个脚本,得到flag:
from itertools import *
def decrypt(c, a, si):
m1=""
for i in range(len(c)//2):
for m in range(33,127):
if (m * a + ord(si[i])) %128 == int(c[2*i:2*(i+1)],16):
m1 += chr(m)
break
else:
pass
return m1
if __name__ == "__main__":
m = ''
a = 57
si = 'ahhahhahhahhahhahhahhahhahhahhahhahhahh'
c = '177401504b0125272c122743171e2c250a602e3a7c206e014a012703273a3c0160173a73753d'
m = decrypt(c,a,si)
print(m)
Misc
Questionnaire
问卷调查,直接F12查看最后发现给了答案,直接输入,得到回显,输入即为flag
babyweb
首先查看发现password_is_here
是零宽度字符隐写,这里推荐两个网站:
在线解密[1]:http://330k.github.io/misc_tools/unicode_steganography.html
在线解密[2]:https://offdev.net/demos/zwsp-steg-js
那么用在线解密2我们解得密码为:
输入密码解压缩flag.zip,发现有一张png打不开,所以winhex打开发现是png倒着写,一个脚本解决:
fp = open('f14g','rb')
s = fp.read()
# print(s)
fp1 = open('f14gg.png','wb')
fp1.write(s[::-1])
得到一张图片:
那么是一堆奇怪的编码,首先前三个是Arthur and the Invisibles Alphabet
,找到一个在线的网站https://www.dcode.fr/arthur-invisibles-cipher
,解为UVW:
上图代表A-Z
然后4-6为银河密码,解得HZA
7-9为跳舞小人,解得ITW
最后两位为神奇宝贝鸟图腾密码,解得AU
bin/cat/2
这道题直接gif分解出图片:
然后仔细看发现主要是两种不同的图案,一种是
另一种是
所以可以把这里的改成0、1,然后变成二维码。然后观察可得长为高的两倍,所以这里的长是隔一位取一个的。然后最后生成一张二维码,扫码即可
testyournc
首先ls /
发现有个f1a9.bak
,里面代码为:
然后发现他是把flag随机写到某部分去,然后根据他这个代码,写一个脚本:
a=open('flag')
a.seek(1024*1024*1024)
for i in range(1024,13428):
a.seek(1024*1024*1024*i)
if a.read(1)==str(chr(0x00)):
continue
else:
a.seek(1024*1024*1024*i)
print(i)
print(a.read(20))
然后base64.encode
以后
echo YT1vcGVuKCdmbGFnJykKYS5zZWVrKDEwMjQqMTAyNCoxMDI0KQpmb3IgaSBpbiByYW5nZSgxMDI0LDEzNDI4KToKICAgIGEuc2VlaygxMDI0KjEwMjQqMTAyNCppKQogICAgaWYgYS5yZWFkKDEpPT1zdHIoY2hyKDB4MDApKToKICAgICAgICBjb250aW51ZQogICAgZWxzZToKICAgICAgICBhLnNlZWsoMTAyNCoxMDI0KjEwMjQqaSkKICAgICAgICBwcmludChpKQogICAgICAgIHByaW50KGEucmVhZCgyMCkpCiAg | base64 -d | python
就可得到对应的位置和对应位置写入的flag
这里有个师傅的Blog,思路很清奇,可以看看:https://lazzzaro.github.io/2020/05/24/match-DASCTF-May-%C3%97-BJDCTF-3rd-%E5%AE%89%E6%81%92%E4%BA%94%E6%9C%88%E8%B5%9B/#testyournc