i春秋「百度杯」二月第二場Web專題

2021-07-27 07:58:19 字數 2296 閱讀 9866

檢視原始碼,得知限制了只允許數字字母下劃線

利用超全域性變數

很明顯的**注入

獲得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 的意...