前言:大佬们太强了、队友太强了,我只能写写被大佬们打爆的题来摸鱼
寻宝
进去发现有两个输入框,有点像是需要两个密码
一、KEY1获取方式bypass
具体步骤:
第一层:要求非纯数字,利用PHP的格式转换(字符串比较读取)$num1=1025a即可
第二层:绕过intval(),方式利用科学计数法绕过
n
u
m
2
=
5
e
5
第
三
层
:
利
用
脚
本
跑
m
d
5
即
可
,
num2=5e5 第三层:利用脚本跑md5即可,
num2=5e5第三层:利用脚本跑md5即可,num3=61823470
(附脚本:
)
<?php
for ($a=60000000;$a<70000000;$a++)
{
if(substr(md5($a),0,7)=='4bf21cd')
{
echo $a;
}
}
?>
`
第四层:科学计数法绕过:$num4=0e00000
第五层:JSON 格式的字符串,要求为空,这个json_decode在解析非json格式的时候会自动置空NULL,所以很容易绕过 $num5=[
最后POST格式传参即可:
ppp[number1]=1025a&ppp[number2]=5e5&ppp[number3]=61823470&ppp[number4]=0e00000&ppp[number5]=[
response:
第一层第二层第三层第四层第五层KEY1{e1e1d3d40573127e9ee0480caf1283d6}
得到KEY1。
二、KEY2获取
查看任意一个docx文件,发现一堆有大小写字母加数字组合,猜测KEY2隐藏在其中的某一个docx文件内部,而且是base64编码后的结果,所以使用python脚本来解析文件
结果发现base64解码后跑不出来KEY2,猜测KEY2应该是直接放在了某个docx文档下面
所以修改后的脚本如下:
import os
import docx
import base64
for k in range(20):
for j in range(20):
path= '../5.{0}/VR_{1}'.format(k+1,j+1) #随着脚本位置而修改
#获取该目录下所有文件,存入列表中
fileList=os.listdir(path)
n=0
for i in fileList:
try:
#设置旧文件名(就是路径+文件名)
oldname=path+ os.sep + fileList[n] # os.sep添加系统分隔符
#设置新文件名
newname=path + os.sep +'c'+str(n+1)+'.docx'
os.rename(oldname,newname) #用os模块中的rename方法对文件改名
#print(oldname,'======>',newname)
file_name=newname
file=docx.Document(file_name)
txt=''
for para in file.paragraphs:
#print(para.text)
#txt=str(base64.b64decode(para.text))
txt=para.text
if("KEY2" in txt):
print(txt)
except:
pass
n+=1
=》KEY2{T5fo0Od618l91SlG6l1l42l3a3ao1nblfsS}
flag值:flag{798ef6da-41a9-4a14-a8a8-8b6351f3e162}