同学给过我一块树莓派,那会儿觉得挺新鲜的。但是每次使用都需要远程桌面或者 ssh 进行登录,比较麻烦。后来为了方便管理,在树莓派上安装部署了 LAMP 环境,然后写了一个简单的 PHP 页面,代码如下:


<?php
$cmd = isset($_GET['cmd']) && !empty($_GET['cmd']) ? $_GET['cmd'] : '';
?>


<html>
<head></head>
<body>
<div>
<form action="cmd.php" method="get">
input cmd:<input type="text" name="cmd"/>
</form>
</div>
<div>
<pre>
<?php
if ( $cmd != '' ) {
echo shell_exec($cmd);
}
?>
</pre>
</div>
</body>
</html>

        代码不长,通过一个 GET 方法,可以执行一些简单的代码。它其实类似一句话木马,而且可以缩减到一句代码:


<?php echo shell_exec($_GET['cmd']); ?>

        这样的话,直接通过浏览器的地址栏写入相应的命令即可,但是为了手机上也可以使用的方便,就增加了一个 input 框。


        ​可以简单的执行一些命令进行测试:


        比如 ls 命令,可以显示当前目录下的文件。但是在执行 cd / 命令,再执行 ls 命令时,无法看到根目录下的文件。因为每次执行命令相当于每次启动一个新的 shell。那么要查看根目录下的文件,需要通过命令 ls / 来进行查看,或者可以通过 cd / && ls 命令来查看根目录下的文件。


        该脚本可以在其他的 Linux 平台下运行,因为本身树莓派使用的就是 Linux 操作系统的内核。