定義和用法
pathinfo() 函數以數組或字符串的形式返回關于文件路徑的信息。
返回的數組元素如下:
語法
pathinfo(path,options)
參數
可能的值:
提示和注釋
注釋:如果不是請求所有的元素,則 pathinfo() 函數返回字符串。
php開啟pathinfo 路由模式:pathinfo 模式 需要 php.ini 開啟下面這個參數
cgi.fix_pathinfo=1
path_info模式:http://www.xxx.com/index.php/模塊/方法
實例 1
<?phpprint_r(pathinfo("/testweb/test.txt"));?>上面的代碼將輸出:
Array([dirname] => /testweb[basename] => test.txt[extension] => txt)
實例 2
<?phpvar_dump(pathinfo("/testweb/test.txt",PATHINFO_DIRNAME));var_dump(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));var_dump(pathinfo("/testweb/test.txt",PATHINFO_EXTENSION));?>上面的代碼將輸出:
string(8)"/testweb"string(8)"test.txt"string(3)"txt"
應用
目錄不可控沒有執行權限

pathinfo, 一種偽靜態的用法,path_info 模式:http://www.xxx.com/index.php / 模塊 / 方法:

sb.txt 被當成了模塊,實際上請求的還是 6.php

一句話就執行了。
過 WAF 注入
本地安裝 apache 安全狗
已知在開啟 pathinfo 的情況下 (默認開啟) 可以這樣訪問

常用注入語句被攔截

pathinfo 模式不攔截

總結
以上就是這篇文章的全部內容了,本文也算是拋磚引玉,更多用途請自測!希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答