檢視原始碼,得知限制了只允許數字字母下劃線
利用超全域性變數
很明顯的**注入
獲得flag
session nums需要》=10返回flag
初始化為0
其中substr(md5($value),5,4)==0是恆成立的
只要滿足whoami 等於就會 對nums加1
whoami初始化為ea
並且加一的同時會輸出 下乙個隨機whoami值 不知道是不是題出錯了 只需要提交10次就可以了
第一次提交value[0]=e&value[1]=a
接下來的value值根據輸出出來的 對應構造請求就可以了
很明顯的包含漏洞
檢視phpinfo
資訊發現allow_url_include
是開啟的
可以利用php://input
等協議 執行任意**
獲得flag
設定了login=0
偽造login=1
重新訪問下
拿到乙個管理頁面
看樣子是乙個包含漏洞
測試fuzz
返回正常
返回空白
替換了../
雙重構造饒過
=包含日誌
爆破上傳路徑均失敗
檢視了nginx.conf
檔案 =
=這裡比較可疑
通過搜尋引擎搜尋得知
獲得flag
web 5 onethink
//onethink最新通殺getshell定位分析
//thinkphp框架寫的開源系統或被getshell tp官方onethink舉例
大意是thinkphp的快取方式缺陷配合onethink過濾不嚴造成的命令執行漏洞。
thinkphp的預設快取方式s()是以file方式,在/runtime/temp 下生成檔名固定的快取檔案
onethink在/runtime/temp生成快取檔案2bb202459c30a1628513f40ab22fa01a.php,其中記錄的使用者名稱可以被使用者控制,由於註冊時只限制了使用者名稱長度,沒有對內容進行過濾,造成了命令執行漏洞。
雖然圖都掛了,但是看**和文字分析,把原始碼下回來本地搭環境測試了好久,勉強把漏洞利用復現出來。
由於限制了使用者名稱長度,用burpsuit改包,註冊下面2個帳號:
%0a$a=$_get[a];//
%0aecho `$a`;//
然後依次登入,這裡要注意順序,因為先登入的會先寫進快取檔案,順序寫反了就執行不了了
最後訪問
/runtime/temp/2bb202459c30a1628513f40ab22fa01a.php?a=cat ../../flag.php
得到flag
百度杯2017 二月場 爆破二 三
include flag.php a request hello eval var dump a show source file 還是 審計 乙個乙個來看 flag.php hello的value設定為讀取檔案的函式,讓eval執行這段函式。fread 讀取指定檔案 可安全用於二進位制檔案 str...
百度杯 二月場 Misc Web 爆破 3
error reporting 0 session start require flag.php if isset session nums if session time 120 value request value str rand range a z str rands str rand m...
i春秋 百度杯十月場 EXEC
用 vim r 命令恢復檔案,得到原始碼 flag in flag233.php function check number if digit one digit nine return number 11259375 if isset get sign check get sign else 的意...