在PHP中使用FastCGI解析漏洞及修復(fù)方案
漏洞描述:
Nginx默認(rèn)是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通過(guò)正則匹配設(shè)置SCRIPT_FILENAME。當(dāng)訪問(wèn)http://192.168.1.102/phpinfo.jpg/1.php這個(gè)URL時(shí),$fastcgi_script_name會(huì)被設(shè)置為“phpinfo.jpg/1.php”,然后構(gòu)造成SCRIPT_FILENAME傳遞給PHP CGI。如果PHP中開(kāi)啟了fix_pathinfo這個(gè)選項(xiàng),PHP會(huì)認(rèn)為SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就會(huì)將phpinfo.jpg作為PHP文件來(lái)解析了。
漏洞危害:
WebServer Fastcgi配置不當(dāng),會(huì)造成其他文件(例如css,js,jpg等靜態(tài)文件)被當(dāng)成php腳本解析執(zhí)行。當(dāng)用戶將惡意腳本webshell改為靜態(tài)文件上傳到webserver傳遞給后端php解析執(zhí)行后,會(huì)讓攻擊者獲得服務(wù)器的操作權(quán)限。
修復(fù)方案:
(Nginx用戶可以選擇方案一或方案二,IIS用戶請(qǐng)使用方案一)
方案一,修改php.ini文件,將cgi.fix_pathinfo的值設(shè)置為0。完成后請(qǐng)重啟PHP和NGINX(IIS)。
方案二,在Nginx配置文件中添加以下代碼:
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
這行代碼的意思是當(dāng)匹配到類(lèi)似test.jpg/a.php的URL時(shí),將返回403錯(cuò)誤代碼。修改完成后請(qǐng)重啟Nginx。
相關(guān)文章
PHP通過(guò)API獲取手機(jī)號(hào)碼歸屬地
本API支持1、可輸入11位手機(jī)號(hào)查詢(xún)歸屬地如:13858861234,2、可輸入7位號(hào)段查詢(xún)歸屬地如:1335586,3、支持號(hào)段 13、14、15、17、18,有需要的小伙伴可以參考下。2015-05-05
CI框架自動(dòng)加載session出現(xiàn)報(bào)錯(cuò)的解決辦法
很多程序員在CI中使用session的時(shí)候,開(kāi)啟自動(dòng)加載session之后網(wǎng)站就報(bào)錯(cuò)了,這篇文章主要介紹了CI框架自動(dòng)加載session出現(xiàn)報(bào)錯(cuò)的解決辦法,需要的朋友可以參考下2014-06-06
Zend Framework教程之Loader以及PluginLoader用法詳解
這篇文章主要介紹了Zend Framework教程之Loader以及PluginLoader用法,結(jié)合實(shí)例形式詳細(xì)分析了Zend Framework自動(dòng)加載機(jī)制的原理,使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-03-03
php反序列化長(zhǎng)度變化尾部字符串逃逸(0CTF-2016-piapiapia)
這篇文章主要介紹了0CTF-2016-piapiapia(php反序列化長(zhǎng)度變化尾部字符串逃逸),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
php制作圓形用戶頭像的實(shí)例_自定義封裝類(lèi)源代碼
下面小編就為大家?guī)?lái)一篇php制作圓形用戶頭像的實(shí)例_自定義封裝類(lèi)源代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Thinkphp自定義代碼生成工具及用法說(shuō)明(附下載地址)
這篇文章主要介紹了Thinkphp自定義代碼生成工具及用法說(shuō)明,簡(jiǎn)單分析了自定義代碼生成工具的作用及用法,并附帶了下載地址,需要的朋友可以參考下2016-05-05
解析yahoo郵件用phpmailer發(fā)送的實(shí)例
本篇文章是對(duì)yahoo郵件用phpmailer發(fā)送的實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

