[PHP] 用不同的標籤繞過上傳內容檢查
2018, Dec 03
部分網站對上傳的文件內容進行檢查,如果發現有”<?php”則判斷為webshell。這種情況下,我們可以通過不同的PHP標籤來繞過上傳的內容檢查。
可用的PHP標籤有:
<?php phpinfo(); ?>
<? phpinfo(); ?>
在開啟了short_open_tag
後即可使用,無版本限制,在PHP5.3及以後默認開啟。<?=phpinfo()?>
在PHP5.4前,開啟了short_open_tag
後即可使用;在PHP5.4及以後,任何情況(包括short_open_tag=off
)下都支援。<% phpinfo(); %>
在開啟了asp_tags
後即可使用,默認不開啟,PHP7.0及以後移除了這種方式。<script language="php">phpinfo();</script>
在PHP5下支援,PHP7.0及以後移除了這種方式。
程式碼
<?php
$code = file_get_contents($_FILES['file']['tmp_name']);
if(stripos($code, '<?php') !== false) {
exit('illegal content');
}
move_uploaded_file($_FILES['file']['tmp_name'], $new_filename);
資料來源
https://tricking.io/card/24/content