詳解PHP中pathinfo()函數(shù)導(dǎo)致的安全問題
定義和用法
pathinfo() 函數(shù)以數(shù)組或字符串的形式返回關(guān)于文件路徑的信息。
返回的數(shù)組元素如下:
- [dirname]:返回文件路徑中的目錄部分
- [basename]:返回文件路徑中文件名的部分
- [extension]:返回文件路徑中文件的類型的部分
語法
pathinfo(path,options)
參數(shù)
- path: 必需。規(guī)定要檢查的路徑。
- options 可選。規(guī)定要返回的數(shù)組元素。默認(rèn)是 all。
可能的值:
- PATHINFO_DIRNAME - 只返回 dirname
- PATHINFO_BASENAME - 只返回 basename
- PATHINFO_EXTENSION - 只返回 extension
提示和注釋
注釋:如果不是請(qǐng)求所有的元素,則 pathinfo() 函數(shù)返回字符串。
php開啟pathinfo 路由模式:pathinfo 模式 需要 php.ini 開啟下面這個(gè)參數(shù)
cgi.fix_pathinfo=1
path_info模式:http://www.xxx.com/index.php/模塊/方法
實(shí)例 1
<?php print_r(pathinfo("/testweb/test.txt")); ?>
上面的代碼將輸出:
Array ( [dirname] => /testweb [basename] => test.txt [extension] => txt )
實(shí)例 2
<?php var_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"
應(yīng)用
目錄不可控沒有執(zhí)行權(quán)限
pathinfo, 一種偽靜態(tài)的用法,path_info 模式:http://www.xxx.com/index.php / 模塊 / 方法:
sb.txt 被當(dāng)成了模塊,實(shí)際上請(qǐng)求的還是 6.php
一句話就執(zhí)行了。
過 WAF 注入
本地安裝 apache 安全狗
已知在開啟 pathinfo 的情況下 (默認(rèn)開啟) 可以這樣訪問
常用注入語句被攔截
pathinfo 模式不攔截
總結(jié)
以上就是這篇文章的全部內(nèi)容了,本文也算是拋磚引玉,更多用途請(qǐng)自測(cè)!希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
JS如何設(shè)置滾動(dòng)屬性默認(rèn)自動(dòng)滾動(dòng)到底部(overflow:scroll;)
這篇文章主要給大家介紹了關(guān)于JS如何設(shè)置滾動(dòng)屬性默認(rèn)自動(dòng)滾動(dòng)到底部(overflow:scroll;)的相關(guān)資料,通過本文介紹的的JavaScript代碼示例,你可以實(shí)現(xiàn)滾動(dòng)條默認(rèn)在最底部的效果,需要的朋友可以參考下2023-10-10Openlayers實(shí)現(xiàn)擴(kuò)散的動(dòng)態(tài)點(diǎn)(水紋效果)
這篇文章主要為大家詳細(xì)介紹了Openlayers實(shí)現(xiàn)擴(kuò)散的動(dòng)態(tài)點(diǎn),水紋效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08使用JS判斷移動(dòng)端手機(jī)橫豎屏狀態(tài)
本文通過js和cas代碼分別給大家介紹了移動(dòng)端判斷手機(jī)橫豎屏狀態(tài)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07js父窗口關(guān)閉時(shí)子窗口隨之關(guān)閉完美解決方案
admin注銷的時(shí)候,或者main.html關(guān)閉的時(shí)候,如何讓打開的所有新窗口一起關(guān)閉,下面有個(gè)不錯(cuò)的解決方案,大家可以參考下2014-04-04JavaScript開發(fā)者必備的10個(gè)Sublime Text插件
Sublime Text幾乎是任何開發(fā)者在其工具箱的必備應(yīng)用程序,這篇文章主要介紹了JavaScript開發(fā)者必備的10個(gè)Sublime Text插件,感興趣的小伙伴們可以參考一下2016-02-02JS 日期與時(shí)間戮相互轉(zhuǎn)化的簡單實(shí)例
下面小編就為大家?guī)硪黄狫S 日期與時(shí)間戮相互轉(zhuǎn)化的簡單實(shí)例。小編覺得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06