❶ 文件上傳漏洞 — .user.ini繞過、後綴大小寫繞過
文件上傳漏洞在「upload-labs靶場」中講解,搭建教程詳述於文件上傳漏洞靶機搭建教程。在「Pass-05/index」頁面,訪問進入靶機Pass05環境的練習頁面,需注意PHP版本須大於等於5.3.0版本。頁面提示及文件源碼顯示,pass過濾了包括.php,.php5等在內的多種後綴名。直接技巧無法上傳.htaccess文件以繞過。解決方法需補充知識,即PHP.ini搜索路徑遵循順序:首先查找php-SAPI.ini(例如:php-cli.ini或php-apache.ini),隨後從執行PHP文件所在目錄開始向上搜索至web根目錄,若執行文件位於根目錄外,則只掃描該目錄。自PHP5.3.0版本起,支持基於每個目錄的.htaccess風格的INI文件。此類文件僅被CGI/Fastcgi sapi處理,且引入了兩個新的設置:user_ini.filename和user_ini.cache_ttl,分別控制用戶INI文件的使用與重新載入間隔時間。.user.ini風格的INI文件僅識別模式為「PHP_INI_PERDIR」和「PHP_INI_USER」的設置。.user.ini實際上允許用戶自定義php.ini配置,通過用戶自定義設置,可製造後門。具體方法為直接在.user.ini文件中編寫。對於「Pass-06/index」頁面,通過查看提示與文件源碼,發現將多種後綴名包括.php,.php5等進行過濾,但並未對後綴名進行統一轉換為小寫。因此,考慮嘗試後綴名大小寫繞過方法。訪問上傳的文件,文件被解析並執行,此為後綴名大小寫繞過成功案例。