【问题标题】:Fake a client camera for a web application in the desktop browser在桌面浏览器中为 Web 应用程序伪造客户端摄像头
【发布时间】:2017-06-20 11:40:01
【问题描述】:

我正在测试一个 Web 应用程序,在其中遇到了一个按钮。这个按钮应该启动客户端的相机应用程序,然后允许用户上传照片。

当我在虚拟机上进行测试时,没有相机应用程序,因此按钮对我没有任何作用。

经过一些研究,我相信该 Web 应用程序是使用/基于cordova 构建的。我确实可以访问 JavaScript,我相信它负责按钮操作 - 但我无法共享代码。

总而言之,这就是发生的事情:

 var client_camera = navigator.camera;
 client_camera.getPicture(...)

有没有办法让浏览器/网络应用程序认为我确实有一个相机/相机应用程序,从而允许上传这样的图片?

编辑: Documentation of the discovered function can be found here

【问题讨论】:

  • 建议迁移到 stackoverflow...
  • 尽管与渗透测试相关,但我相信你是对的。事后看来,这更适合 StackOverflow。
  • 直接调用相机回调,模拟一个事件对象和应用消费所需的道具。

标签: web-applications browser mobile spoofing


【解决方案1】:

你不能绕过相机动作。

无论如何,navigator 是一个包含客户端详细信息(浏览器、操作系统和一些组件,如相机、闪光灯等)的对象

这里我只能建议

检查是否有摄像头。

如果是,请使用它。

如果没有,添加默认文件上传器

代码

if(navigator.camera){
  //camera is there add the code to capture from camera
}
else{
  var file=document.createElement('input');
  file.set attribute('type','file');
  //append it to the container div or body
  // assume that you have a div with class container
 document.querySelector('div.container').appendChild(file);

然后您可以在选择文件时启动上传过程,方法是在input 元素上使用change 事件处理程序

【讨论】:

  • 感谢您的建议。我不是在尝试编写处理该场景的应用程序,而是试图在我的桌面上欺骗 navigator.camera 元素。
  • 为此,没有直接的方法。您可能想使用一些第三方应用程序。
  • 您是否知道任何此类第三方应用程序?
  • cordova 用于移动设备。你想要一个安卓应用程序吗?那么这篇文章可能会有所帮助android.stackexchange.com/a/124752/209927@SaAtomic
  • 如前所述,我试图在桌面浏览器上欺骗相机。 Linux 上的火狐
猜你喜欢
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
相关资源
最近更新 更多