从Javascript和HTML运行Unix命令
Run Unix commands from Javascript and HTML
我想使用javascript技术在网页上运行Lynis(Kali Linux中预装的审计工具),但我不知道如何使用javascript中的bash命令执行本地程序,有人能帮我吗?
简而言之,总体思路如下:
-
访问者(假设访问者在安装了Lynis的计算机上使用Kali Linux)进入我的网页www.example.com/example.html
-
访问者下载页面的内容,通过一个按钮或类似的东西,我们可以执行shell命令并在访问者的计算机上运行Lynis软件。(例如"#sudo lynis")
-
当Lynis完成执行时,生成的结果以某种方式与javascript代码交互,我们可以在网站上显示这些信息。
(现在的优先级是第1点和第2点)
提前谢谢。
附言:如果这不可能。。。有没有什么方法可以在不使用javascript的情况下做到这一点?
这是不可能的,否则这将是有史以来最大的安全漏洞。
JavaScript代码是一种客户端语言,用户可以很容易地注入和修改它。这意味着它是在他们的浏览器上存储和执行的,既没有加密也没有编译,因此可以在他们空闲时查看和编辑。这意味着简单地让JavaScript能够执行服务器端shell命令将是一个巨大的安全漏洞。
话虽如此,您可以创建一个执行shell命令的PHP脚本,您可以使用JavaScript调用该命令。再次记住,这打开了一个巨大的安全漏洞。
JavaScript:
function exec(command) {
var form = document.createElement("form");
form.setAttribute("action","exec.php");
form.setAttribute("method","post");
form.setAttribute("display","none");
var input = document.createElement("input");
input.setAttribute("type","text");
input.setAttribute("name","command");
input.value = command;
form.appendChild(input);
var submit = document.createElement("input");
submit.setAttribute("type","submit");
form.appendChild(submit);
document.body.appendChild(form);
submit.click();
document.body.removeChild(form);
}
PHP:
if (isset($_POST["command"]))
shell_exec($_POST["command"]);
print "<script>history.go(-1)</script>"
PHP放在一个名为"exec.PHP"的文件中,JavaScript可以放在你想要使用的任何网页中。
然后,只需使用"exec"函数,就可以通过JavaScript在计算机上执行shell命令。比如"exec('edit')"会在我的电脑上打开gedit。
如果您使用此功能,任何登录您网站的用户都可以键入该命令并在您的计算机上执行命令。
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用Socket.io将命令从客户端发送到服务器
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 命令行中的Uglify js;不要弄乱变量名
- http.listen()在运行时接受终端命令
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 如何将给定的curl命令复制为jquery ajax请求
- 打开抽屉的Javascript打印命令
- Web控制台命令不起作用
- Javascript Unix时间戳转换
- 如何使用脚本在jsf中执行命令按钮的自动点击
- 类似HTML命令行的文本框
- Unix文件的Regex验证
- 命令“;节点"做
- 节点JS express和控制台输出到命令行与浏览器
- 使用Node.js执行简单Unix终端命令
- 从Javascript和HTML运行Unix命令
- 如何使用Unix |管道将Node.js脚本连接在一起(在命令行上)
- Node.js:在执行unix命令时转义空格
- Electron (Atom-Shell)从页面中的链接运行unix命令