0x00 簡介
記錄這個題純粹是為了記錄以下有關strstr()函式的相關知識。
0x01 題目
}include($page);?>
其中的涉及了兩個函式:strstr()函式、str_replace()函式。
strstr函式:strstr(字串,你要搜尋的內容,false)
括號裡面有三個部分:
1.字串:也就是上面的$page。例如:在url後面新增 /?page=123456,那麼$page的內容就是123456。
2.你要搜尋的內容:也就是題目中的php://。意思就是該函式會從$page的內容裡去尋找php://,而這裡是乙個while語句,一旦查詢到php://,那麼就會執行大括號裡面的語句。
例如:我的url是
那麼傳入的$page的內容就是php://input,而前面的「php.」就會被丟棄。
3.false:我這裡寫false的原因是該引數預設是false。也就是一般情況只需要寫前兩個引數即可。false代表匹配到php://之後,會輸出php://和之後的內容。而如果為true,則會輸出「php.」,也就是php://前面的內容。
注:strstr函式對大小寫敏感,也就是會區分大小寫。
str_replace函式:這個函式的作用是將匹配到的php://全部替換為空。
例如:str_replace(「1」,「2」,「123」)會輸出223。因為會將全部的1替換為2。(同樣區分大小寫)
解法就不細說了,本意只是為了記錄一下函式。
將php://改為php://即可,因為strstr函式對大小寫敏感。
burp抓包,post傳參:<?php system("ls");?>
就會看到3個檔案,再使用<?php system("cat fl4gisisish3r3.php");?>便能拿到flag。
然後就是還可以利用data://偽協議來解題。
data://偽協議
php5.2.0起,資料流封裝器開始有效,主要用於資料流的讀取。如果傳入的資料是php**,就會執行**
使用方法:data://text/plain;base64,***x(base64編碼後的資料)
攻防世界php2 攻防世界 php2
開啟題目一看,問我can you anthenticate to this website?我們先掏出來御劍掃它一下,開啟一看,發現原始碼洩露,我們開啟網頁f12檢視原始碼 這裡讓我們get方式傳入乙個id值需要繞過,先看第乙個 admin get id 需要為假,那我們將 a urldecode一...
攻防世界php2 攻防世界 PHP2
開啟實驗環境 實驗準備,chrome 時間充裕準備 firefox 以及firefox下hackbar外掛程式 這裡提示要訪問主站 嗯,用了幾個掃瞄目錄的都沒掃到,原來是放在 index.phps 裡了 phps檔案就是php的源 檔案,通常用於提供給使用者 訪問者 直接通過web瀏覽器檢視php ...
攻防世界php2
開啟場景 phps檔案就是php的源 檔案,通常用於提供給使用者 訪問者 檢視php 因為使用者無法直接通過web瀏覽器看到php檔案的內容,所以需要用phps檔案代替。其實,只要不用php等已經在伺服器中註冊過的mime型別為檔案即可,但為了國際通用,所以才用了phps檔案型別。不完整呀,在url...