[MRCTF2020]PYWebsite
???
赶紧看看pyflag
[MRCTF2020]pyFlag
三张图
用binwalk
在第二张图片搜索JPG文件尾
其他两张图片也有这样的小秘密
复制,先按顺序粘贴出来一个zip
打开,有加密
第一个问题就是粘贴的顺序对不对(虽然它提醒了1,2,3)
然后想到zip伪加密,不过还要再看一下知识点,先过了
接着是有没有可能是弱密码
最后是有没有其他提示
一个一个试,
发现暴力破解软件可以成功识别,于是先暴力破解看看
刚准备去摸鱼,就出来了,1234
可以,看看都有啥
是套娃啊,那有事了。
base16
base32
base64
base85
(卡了我半小时)
上网搜了一大顿,搜了个脚本出来
base系列解码程序
顺便为了改文件,下载了个everything,下好了才找到。。。。
由于base92的pypi是py2的,有地方要改一下
#coding:utf-8
import base64,base36,base58,base91,base92,base62
import binascii
import re
def base_decode(n):
m=''
flag=False
try:
if re.search('[a-e]',n):
m=base64.b16decode(n,True)
else:
m=base64.b16decode(n)
except binascii.Error:
pass
else:
flag=True
print("base16deocde:",m)
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base64.b32decode(n)
except binascii.Error:
pass
else:
flag=True
print("base32deocde:",m)
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base58.b58decode(n)
except ValueError:
pass
else:
m=str(m)[2:-1]
if '\\x' in m:
pass
else:
flag=True
print("base58deocde:",m)
mm=str(base91.decode(n))
if '\\x' not in mm:
print("maybe base91decode:",mm)
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base62.decodebytes(n)
except ValueError:
pass
else:
m=str(m)
if '\\x' in m:
pass
else:
flag=True
print("base62deocde:",m)
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base64.b64decode(n)
except binascii.Error:
pass
else:
m=str(m)
if '\\x' in m:
pass
else:
flag=True
print("base64deocde:",m)
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base64.b85decode(n)
except ValueError:
pass
else:
m=str(m)
if '\\x' in m:
pass
else:
print("base_b85deocde:",m)
flag=True
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base64.a85decode(n)
except ValueError:
pass
else:
m=str(m)
if '\\x' in m:
pass
else:
print("base_a85deocde:",m)
flag=True
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base91.decode(n)
except ValueError:
pass
else:
m=str(m)
if '\\x' in m:
pass
else:
print("base91deocde:",m)
flag=True
return flag
#'''''''''''''''''''''''''''''''''
try:
m=base92.decode(n)
except ValueError:
pass
else:
flag=True
print("base92deocde:",m)
return flag
return flag
#'''''''''''''''''''''''''''''''''
if __name__=='__main__':
print("******There are no base36 and base128******")
while(1):
x=input("input the string(q to quit):")
if x=='q':
break
a=base_decode(x)
if a==True:
print('\n')
else:
print("Fail")
一路到底(让我有个不太好的回忆的那道题)
出flag
py到了flag,现在可以看看PYWebsite 了
[MRCTF2020]PYWebsite
翻到最底下,有一个输入授权码
顺着找到了验证函数validate()
反查一个md5
呜呜呜
还有这个
累了,找个wp去看吧
结果直接访问./flag.php
也怪我没细看flag前面有个./
既然直接能进去,我更想把这么md5找出来了
以后说不定可以霍霍别人(乐)
遇到这种情况
1.直接把md5丢到谷歌上搜索
2.找个氪了金的朋友
(第二天)接着往下来吧(找了一晚上)
淦,我也是学过半年网络安全的,就是要骗你
存ip…那就骗ip
加上X-Forwarded-For
试一下X-Forwarded-For: 127.0.0.1
成了