这个空间的提供商说提供ssh访问,但是需要额外申请,那就申请吧,提交之后一直没有反应,可能是我填写的理由不够充分。

不过既然有权限执行perl脚本,那想必我的账户已经具有执行一些shell命令的权限了,只不过他们没有给我提供远程进行ssh的方式罢了。

但如果使用perl写一段cgi脚本,提供一个输入框,输入需要执行的命令,直接通过perl调用系统命令,是不是就能够实现一个简单的shell了?

下面是这段perl脚本

[perl]
#!/usr/bin/perl

use CGI qw(:all);

print header(),start_html("a simple shell");

print "<pre>n";
if (param("cmd")){
$c = param("cmd");
print `$c`;
}
print "</pre>n";
print start_form(-name=>"fm"),
textfield("cmd","",120),
end_form;

print "<script>document.fm.cmd.value=”;document.fm.cmd.focus();</script>";

print end_html();
[/perl]

放上去,随便敲下,cat /etc/passwd,果然很爽,除了不支持类似vi之类的交互模式,对于大部分场合已经足够了。

还有些不足,比如到stderr的输出无法重定向出来,仔细想想,应该有解决方案吧,不过也没必要了,倒是想到一个方案,先把标准错误流重定向到一个临时文件,再cat出来。

用了几下之后便把这个脚本删掉了,直接放到外面太危险了


发表评论

邮箱地址不会被公开。 必填项已用*标注