我想知道是否有办法用jQuery或JavaScript从客户端打开exe文件。
我尝试windows.open("..")
,但它没有用。
答案 0 :(得分:1)
首先,Dalorzo是正确的 - 如果不赚很多钱,你无法逃脱浏览器的沙箱。最近,Pinky Pie在Google Chrome上执行此类任务,从Google赢得了超过6万美元。
http://blog.chromium.org/2012/05/tale-of-two-pwnies-part-1.html
但是,有时我会提出问题试图找到开箱即用的解决方案,所以我假设你有一个合法的用例来解决这个问题。如果你有合法的使用方法,我可以帮你想到一个“黑客”解决方案。我可能会忘记这个回应,但理论上你可以这样做......
回到大学时,我参加了一个计算机取证课程,在这个课程中,我编写了一个聊天网络应用程序,该应用程序可以取消用户的计算机访问聊天网页。这是通过用户运行可从站点下载的可执行文件来完成的。但是,我想让用户不必每次都运行可执行文件,所以我想要一个像你要问的沙盒逃生。
这很麻烦,但如果您的用户是参与方,他们可以修改他们的计算机以允许从Chrome网页运行可执行文件。
请注意:这会降低您的计算机安全性,我只在虚拟机或实验室机器上执行此操作。重新考虑你实际是否想尝试这个。
第一步: 创建Chrome自定义浏览器:
这是我最终编译为打包* .exe的python,完成了创建Google Chrome自定义浏览器。
import sqlite3 as lite
con = lite.connect('C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\Web Data')
c = con.cursor()
#idmax = c.execute('SELECT MAX(id) FROM keywords')
#c.execute("INSERT INTO keywords VALUES('cleanupeverybodyeverywhere','cleanupeverybodyeverywhere','','forensichat://C:>Windows>System32>calc.exe',0,'',0,0,'',0,'',0,0,'',0,'','','','','','','','','')")
c.execute("SELECT * FROM keywords WHERE short_name='cleanupeverybodyeverywhere'")
foo = c.fetchall()
if foo == []:
c.execute("INSERT INTO keywords (short_name,keyword,url,favicon_url) VALUES ('cleanupeverybodyeverywhere','cleanupeverybodyeverywhere','forensichat://C:>Windows>System32>calc.exe','')")
con.commit()
con.close()
请注意,现在,当我打开Chrome标签页并使用自定义浏览器cleanupeverybodyeverywhere
运行密钥forensichat
时,它将打开calc.exe
作为概念验证。
第二步: 修改Windows注册表:
import _winreg as wreg
import getpass
user = getpass.getuser()
key = wreg.CreateKey(wreg.HKEY_CLASSES_ROOT, '')
wreg.SetValue(key,'forensichat',wreg.REG_SZ,'URL:forensichat Protocol')
# Create new subkey
kkey = wreg.CreateKey(wreg.HKEY_CLASSES_ROOT, 'forensichat')
wreg.SetValueEx(kkey, 'URL Protocol', 0, wreg.REG_SZ,'')
# Create new value
wreg.CreateKey(wreg.HKEY_CLASSES_ROOT,"forensichat\shell")
nkey = wreg.CreateKey(wreg.HKEY_CLASSES_ROOT,"forensichat\shell\open")
wreg.SetValue(nkey,"command",wreg.REG_SZ,'C:\Users\\'+user+'\Downloads\\forensicleaner.exe')
key.Close()
请注意,我正在创建一个名为forensichat
的密钥,该密钥将运行用户下载文件夹中的exe
。
当然,我最终清理了这一切并将其打包,因此Anti-Virus不会标记它,接下来我知道谷歌Chrome已标记该网站大声笑。如果你wanna check it out,它仍然有效 - 请检查Secure Chat
和Repeat Customer
。 Chrome会标记它,但显然有办法解决这个问题。