可以使用Javascript访问客户端的网络(故意)

Possible to use Javascript to access the client side's network(knowingly)

本文关键字:网络 故意 客户端 Javascript 访问 可以使      更新时间:2023-09-26

我最近在我的路由器中发现了一个漏洞,基本上给了我root访问权限。收获?有一个nonce隐藏的表单值是随机生成的,必须发送才能使其工作,这使得很难"轻松"完成

所以基本上我想在javascript中做这样的事情:

  1. 获取http://192.168.1.254/blah
  2. 使用正则表达式或类似方法提取随机数值
  3. 将随机数值放入当前页面的隐藏字段中
  4. 通过 POST 将表单提交到http://192.168.1.254/blah完成,其中包含随机数值和我要发送的其他表单值。

仅使用HTML和Javascript可以做到这一点吗?我对"必须在本地保存HTML文件然后打开"之类的事情持开放态度,我认为这是绕过跨域策略的一种方式。

但无论如何,这可能吗?我希望它至少能够从Firefox和Chrome运行。这方面的受众是那些具有一些技术知识的人。

编辑:我已经重写了这个,因为我原来的答案不正确。

由于您可以对本地文件进行 AJAX 调用,因此您可以执行以下操作。

"AJAX 页面"是发出请求的页面。"请求的页面"是不言自明的。

  1. 您的计算机上有 AJAX 页面。AJAX 页从您的计算机调用请求的页,与自身位于同一文件夹中

  2. 您指示用户从其路由器获取请求的页面并将其放在与 AJAX 页面相同的文件夹中

  3. 跨域策略现在不再适用,因为这两个文件位于同一文件夹中。

  4. 您的页面可以有一个 POST 表单,其中action(目标页面)是跨域的,应该没有任何限制

如果您可以在页面上运行PHP代码,请尝试使用cURL。这可以发出跨域请求。

这不能从常规的HTML页面完成。 同源策略将阻止您连接到路由器。 (将页面保存在本地无济于事;浏览器几年前开始严格限制本地页面的功能。

如果你真的想从浏览器做到这一点,你可以写一个扩展。 源限制不适用于浏览器扩展。