web php include攻防世界php安全示例詳解
步驟
打開所給的實驗環境,發現給出代碼,分析代碼可知是文件包含漏洞:
其中含有兩個參數:
- hello參數中的內容會被輸出到頁面
- page參數中的內容則會被進行文件包含,但是會對
php://
進行過濾
兩個函數:
strstr(string,search[,before_search]):strstr() 函數搜索字符串(search)在另一字符串(string)中是否存在,如果是,返回該字符串及剩餘部分,否則返回 FALSE。區分大小寫,stristr()函數不區分大小寫。
string
:必需。規定被搜索的字符串。
search
:必需。規定要搜索的字符串。如果該參數是數字,則搜索匹配該數字對應的 ASCII 值的字符。
before_search
:可選。一個默認值為 “false” 的佈爾值。如果設置為 “true”,它將返回 search 參數第一次出現之前的字符串部分。
str_replace(find,replace,string,count):這個函數是用來替換字符串的
find
:要查的字符串。
string
:原始字符串
繞過方式:
- 使用大小寫繞過的方式:PhP://
這裡我們使用偽協議phP://input
- php://input是個可以訪問請求的原始數據的隻讀流。可以讀取post提交的數據
我們在post提交的內容中寫入命令執行(反引號)的php代碼:
得到三個文件,發現通過瀏覽器打不開:
使用cat命令來查看:
查看第一個文件發現flag!
知識點
本題考查瞭php文件包含漏洞以及OS 命令註入
以上就是web php include攻防世界解決示例的詳細內容,更多關於web php include攻防世界的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- PHP文件上傳利用的常見函數總結大全
- C語言模擬實現strstr函數的示例代碼
- C++中正則表達式的使用方法詳解
- Python如何將給定字符串中的大寫英文字母按以下對應規則替換
- C語言實現統計一行字符串的單詞個數