攻防世界php2 Web php

2021-10-12 14:27:36 字數 1070 閱讀 9476

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...