网站首页 > 教程文章 正文
背景
浏览器禁止直接执行.exe文件的主要原因是出于安全考虑。
这样的限制是为了防止恶意软件利用浏览器的漏洞或用户的不慎而在用户计算机上执行恶意代码。
有没办法不改变浏览器的安全性前提下,从浏览器执行Exe文件?
先看个效果
全部源码
1、编制C#控制台应用程序,使用Nancy框架创建一个简单的Web服务,并在控制台中监听用户输入。
Nancy 是一个轻量级、简单的框架,可以跨平台,在 .NET Framework/Core 和 Mono 上构建基于 HTTP 的服务。
Nancy 旨在处理 DELETE 、 GET 、 HEAD 、 OPTIONS 、 POST 、 PUT 请求,并提供简单、优雅的领域特定语言 (DSL),只需按几次键即可返回响应。
public static void Main(string[] args)
{
Console.WriteLine("web服务已启动!");
using (NancyHost host = new NancyHost(new Uri("http://localhost:12345")))
{
host.Start();
while (true)
{
if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.Enter)
break;
System.Threading.Thread.Sleep(100);
}
}
}
2、编制Nancy模块,用于处理Web服务中的请求。
public class Module : NancyModule
{
public Module()
: base("/dhub")
{
// 在处理请求之前执行的操作
Before += nancyContext =>
{
Console.WriteLine(DateTime.Now.ToString() + " " + Request.Url);
return null;
};
// 处理GET请求,路径为/dhub/home
Get["/home"] = parameters =>
{
return "<meta charset=\"UTF-8\">DHub Demo </br></br>"
+
"<input type=\"button\" onclick=\"location.href = 'http://localhost:12345/dhub/open?exe=ping&ip=127.0.0.1'; \" value=\"打开命令 ping 10.14.21.1 (Router)\" />"
+ "</br></br>"
+
"<input type=\"button\" onclick=\"location.href = 'http://localhost:12345/dhub/open?exe=explorer&ip=127.0.0.1'; \" value=\"打开资源管理器 127.0.0.1\" />"
+ "</br></br>"
+
"<input type=\"button\" onclick=\"location.href = 'http://localhost:12345/dhub/open?exe=vncviewer&ip=127.0.0.1'; \" value=\"打开vncviewer 127.0.0.1)\" />";
};
// 处理GET请求,路径为/dhub/open
Get["/open"] = parameters =>
{
string exe = Request.Query["exe"];
string ip = Request.Query["ip"];
Console.WriteLine("exe={0} ip={1} ", exe, ip);
if (exe != null && ip != null)
{
if (exe.ToLower() == "explorer")
Process.Start(string.Format(@"\\{0}\共享", ip));
if (exe.ToLower() == "vncviewer")
Process.Start(Path.Combine(Environment.Is64BitProcess ? "x64" : "x86", "vncviewer.exe"), string.Format("{0} -password PASSWORD", ip));
if (exe.ToLower() == "ping")
Process.Start(@"ping", string.Format("-t {0}", ip));
}
// 返回一个消息并重定向到/dhub/home页面
return "open</br><script language = \"javascript\"> window.location.href = \"http://localhost:12345/dhub/home\"</script>";
};
}
}
3、启动项目
注意:启动visual Studio必须是管理员权限,否则弹出以下错误。
正常启动如下:
4、打开浏览器,输入地址:http://localhost:12345/dhub/home
执行ping
http://ocalhost:12345/dhub/open?exe=ping&ip=127.0.0.1
打开资源管理器
http://localhost:12345/dhub/open?exe=explorer&ip=127.0.0.1
打开任意的exe:vncviewer
http://localhost:12345/dhub/open?exe=vncviewer&ip=127.0.0.1
- 上一篇: 记一次服务器入侵事件的应急响应
- 下一篇: javascript中location对象的用法
猜你喜欢
- 2024-12-01 Shopify模版编辑器问题排查及解决办法汇总
- 2024-12-01 JS实现防止别人通过控制台调试网站
- 2024-12-01 Web安全防范知识基础讲解
- 2024-12-01 「Shopify」屏蔽国内同行卖家访问网站
- 2024-12-01 避免网站中出现 index.html
- 2024-12-01 实现网页跳转的方法
- 2024-12-01 将 Safari 打造成 iOS 里的快速启动中心:Bookmarklet
- 2024-12-01 JMeter主要组件介绍(一)
- 2024-12-01 H5浏览器直接调起微信(url协议 weixin:// )判断是否安装微信
- 2024-12-01 HTTP GET如何在分页查询时传递中文参数值
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)