XYCTF2025復現(WEB)
ez_puzzle
打開環境也是發現個神奇的東西

這里只要按鍵盤上的按鍵就會彈出這個
還有右鍵也不行
還有一個看源代碼的方法,直接在網頁里面輸入,不過這個要在訪問這個界面之前輸入


就是一個禁止鍵盤按鍵和鼠標右鍵的代碼
隨便拼一下看看會發生什么


啥都沒發生
抓個包看看

這里面有個新的請求頭
If-None-Match
這個請求頭

If-None-Match是一個用于 HTTP 條件請求的頭字段,它的主要作用是讓客戶端告訴服務器:“只有當服務器上的資源(文件、數據等)的版本與我提供的標識(ETag)不匹配時,才返回完整的數據。如果匹配,說明我本地緩存的內容是最新的,請直接返回 304 狀態碼,這樣我就可以使用本地緩存了。”
還有個兄弟叫If-Match
這個和他就是反著的

但是這里后面意外發現好東西
就是把拼圖拼完之后
再點擊一下這個圖會提交

抓一下這個提交的包看看
這里沒啥東西
源代碼里面有個puzzle.js進去一看羅師傅提點得知這是js混淆
但是網上并不能將其反混淆出來
所以這里直接在里面找了
彈窗的函數認識的就alert直接搜一下
這里可以直接關閉美化就舒服了

搜索一下alert

這里可以看見了
再搜一下time


這里可以猜一下源碼應該是使用的時間來比較進行彈窗
然后下面的彈窗的條件應該是startime與endtime的差值
這里可以使用控制器看一下

所以這里只需要令startime足夠大
變成負數是最穩定
直接在控制器里面進行賦值
那為什么不改endtime呢?
因為endtime是要我們提交之后才會存在startime是已經存在的我們可以直接賦值

然后再去拼圖

Signin

好簡陋的一個頁面
看下源代碼

很干凈
掃一下

這里的第一個是../是一個目錄讀取的
這個在網上不能直接解
這個直接丟給AI就知道了
第二個就是沒啥東西
第三個download
第四個一看就是關鍵

額
還有一個附件看一下

這個還是比較簡短的代碼了
這里先看路由download
這里可以訪問任意文件但是目錄穿越的符號被禁止了,這里想辦法繞過一下

浙公網安備 33010602011771號