我可以从用户的浏览器中了解到哪些意想不到的事情?
What unexpected things can I learn about a user from their browser?
我正在给 class 的高中生演示网页可以通过他们的手机告诉他们意想不到的事情 - 即使他们没有登录或其他任何东西。到目前为止,我选择了一些大多数人都知道的事情,例如:
设备OS
特定手机(除非您使用 iPhone,否则它只是 iPhone)
语言设置
还有一些更晦涩的事情:
运营商(命中远程服务并返回 JSONP,因为 js 是 IP 天真)
电池电量/充电状态(直到今天我才知道你可以这样做)
你能想到我可以从 UA / Navigator 等中挖掘出的类似的酷/令人毛骨悚然的东西吗?其中大部分是 Android 或 iOS 下的 运行 Chrome(幸运的是,并非每个浏览器都支持电池)。主要活动是关于移动安全和网络钓鱼,所以我想坚持使用手机。
快速编辑:为清楚起见,我正在构建一个他们将访问的网站,该网站将实际演示这些功能 - 因此不幸的是,它们需要实施,至少在 Chrome 中,与计划/草稿相比.
你应该提到地理位置。一个称职的 javascript 库,例如MaxMind 或 Google 分析可用于精确定位用户的地理位置。
这些怎么样...
- 您可以根据搜索历史记录他们的兴趣。
- 他们访问的频率和访问地点。
- 建立他们一天中什么时间访问的档案。
- 在网站上花费的时间
- 他们在哪些页面上花费的时间最多。
- 基于热门区域的页面点击次数或鼠标治疗器所在位置的配置文件。
- 您可以分析典型的用户行为。
这一切的结果是
- 推送数据个性化营销即所见即所得
您,作为个人(google 在他们的广告中经常这样做)
从网络钓鱼的角度来看,我认为最重要的是,有几件危险的事情:
网络钓鱼
- 如果没有附加组件,如果您访问的地址有一个字母不同,浏览器通常不会警告您。即使 URL 方案禁止零宽度字符和其他 Unicode 脏话,您仍然可以监督
l
(小写 L)、1
(一)、I
(大写 I) ).还有许多看起来像普通字母表的 unicode 字符。也许有一些关于 unicode 字符的黑名单,比如希腊字母。检查 this site to play around。您可以尝试使用希腊语 ο
. 创建一些域名,例如 whosebug.com
JavaScript can alter URL after domain name。但我已经好几年没见过可以为用户提供文件夹名称的托管服务了。尽管如此,看到 URL 没有重新加载的变化还是令人毛骨悚然:
window.history.pushState("object or string", "Title", "/new-url");
- 不确定这是否适用,但去年 HackADay.com 揭示了一个 hack,您可以在 link 上按下鼠标按钮后更改
<a>
href,有效地更改目标 URL。但是话又说回来,您也可以使用 javascript... 重定向浏览器
个人资料
为此,我要做的第一件事是检查 MDN 上的 Window
和 Document
。这肯定会揭示一些很酷的东西,让电池电量信息变得微不足道:
- Window:
- Window.ondevicemotion - 执行它的建议。假设你也可以
Window.addEventListener("devicemotion", ...)
Window.ondevicelight
- 这个非常令人毛骨悚然,但仅适用于 Firefox
- Window.ondeviceorientation - 广泛支持 设备移动事件。想要近似用户行走的路径并将其绘制在 canvas 上?或者制作一个尖叫“把 fuking phone 放下。*”的应用程序,直到他们把它放在 table?
- 此外,还有数百万种方法可以获取各种 屏幕属性 。其中一些被用来猜测 OS 版本,因为不同的 OS 有不同的菜单栏,占据不同的屏幕部分。
文件:
document.referrer
- 想跟踪您的用户?
您可以通过创建以下元素来检测是否存在 广告拦截插件:
<div id="advertisment"
class="ad advertisment ads banner"
style="pointer-events: none;position: absolute; opacity: 0;">NOTHING
</div>
然后获取 .getBoundingClientRect()
并声明非零维度。
- 您可以检测文档何时被firebug检查。 (或者您可以在过去,当 firebug 实际上在 DOM 中添加元素以突出显示节点时)。这些元素在 Firebug 中是不可见的,但会触发 DOM 突变事件。
- 如果用户确认,sound and video可以被记录。
- 我曾经创建了一个脚本,能够在服务器上传输所有 DOM 突变,让我可以实时观看其他用户使用网站。但不幸的是我没有把它完成到生产状态。但这就是我发现 firebug 问题的方式。
- 还有其他技巧可以检查调试工具是否 运行。这些通常是各种技巧,尝试 google 一些东西。
- 有没有想过您的用户是否启用了 CORS localhost HTTP 服务器 运行?我的意思是,这不值得一试吗?
WebWorkers
允许您在客户机上生成线程。您可以将其用于 分布式处理 或者只是 消耗电池电量 。由于它不直接影响 GUI 线程,他们不会注意到,直到为时已晚。这听起来也是生成 hask 破解和破解证书的好方法。
- 您可以更改复制的文本,可能会向其中添加跨站点脚本攻击。好的技巧是用一堆空格来偏移你的脚本,这样它就不会在没有文本换行的典型文本编辑器中看到。
- 使用Desktop notification,你可以假装你是杀毒软件,windows更新...
我正在给 class 的高中生演示网页可以通过他们的手机告诉他们意想不到的事情 - 即使他们没有登录或其他任何东西。到目前为止,我选择了一些大多数人都知道的事情,例如:
设备OS
特定手机(除非您使用 iPhone,否则它只是 iPhone)
语言设置
还有一些更晦涩的事情:
运营商(命中远程服务并返回 JSONP,因为 js 是 IP 天真)
电池电量/充电状态(直到今天我才知道你可以这样做)
你能想到我可以从 UA / Navigator 等中挖掘出的类似的酷/令人毛骨悚然的东西吗?其中大部分是 Android 或 iOS 下的 运行 Chrome(幸运的是,并非每个浏览器都支持电池)。主要活动是关于移动安全和网络钓鱼,所以我想坚持使用手机。
快速编辑:为清楚起见,我正在构建一个他们将访问的网站,该网站将实际演示这些功能 - 因此不幸的是,它们需要实施,至少在 Chrome 中,与计划/草稿相比.
你应该提到地理位置。一个称职的 javascript 库,例如MaxMind 或 Google 分析可用于精确定位用户的地理位置。
这些怎么样...
- 您可以根据搜索历史记录他们的兴趣。
- 他们访问的频率和访问地点。
- 建立他们一天中什么时间访问的档案。
- 在网站上花费的时间
- 他们在哪些页面上花费的时间最多。
- 基于热门区域的页面点击次数或鼠标治疗器所在位置的配置文件。
- 您可以分析典型的用户行为。
这一切的结果是 - 推送数据个性化营销即所见即所得 您,作为个人(google 在他们的广告中经常这样做)
从网络钓鱼的角度来看,我认为最重要的是,有几件危险的事情:
网络钓鱼
- 如果没有附加组件,如果您访问的地址有一个字母不同,浏览器通常不会警告您。即使 URL 方案禁止零宽度字符和其他 Unicode 脏话,您仍然可以监督
l
(小写 L)、1
(一)、I
(大写 I) ).还有许多看起来像普通字母表的 unicode 字符。也许有一些关于 unicode 字符的黑名单,比如希腊字母。检查 this site to play around。您可以尝试使用希腊语ο
. 创建一些域名,例如 whosebug.com
JavaScript can alter URL after domain name。但我已经好几年没见过可以为用户提供文件夹名称的托管服务了。尽管如此,看到 URL 没有重新加载的变化还是令人毛骨悚然:
window.history.pushState("object or string", "Title", "/new-url");
- 不确定这是否适用,但去年 HackADay.com 揭示了一个 hack,您可以在 link 上按下鼠标按钮后更改
<a>
href,有效地更改目标 URL。但是话又说回来,您也可以使用 javascript... 重定向浏览器
个人资料
为此,我要做的第一件事是检查 MDN 上的
Window
和Document
。这肯定会揭示一些很酷的东西,让电池电量信息变得微不足道:- Window:
- Window.ondevicemotion - 执行它的建议。假设你也可以
Window.addEventListener("devicemotion", ...)
Window.ondevicelight
- 这个非常令人毛骨悚然,但仅适用于 Firefox- Window.ondeviceorientation - 广泛支持 设备移动事件。想要近似用户行走的路径并将其绘制在 canvas 上?或者制作一个尖叫“把 fuking phone 放下。*”的应用程序,直到他们把它放在 table?
- 此外,还有数百万种方法可以获取各种 屏幕属性 。其中一些被用来猜测 OS 版本,因为不同的 OS 有不同的菜单栏,占据不同的屏幕部分。
- Window.ondevicemotion - 执行它的建议。假设你也可以
文件:
document.referrer
- 想跟踪您的用户?您可以通过创建以下元素来检测是否存在 广告拦截插件:
<div id="advertisment" class="ad advertisment ads banner" style="pointer-events: none;position: absolute; opacity: 0;">NOTHING </div>
然后获取
.getBoundingClientRect()
并声明非零维度。
- 您可以检测文档何时被firebug检查。 (或者您可以在过去,当 firebug 实际上在 DOM 中添加元素以突出显示节点时)。这些元素在 Firebug 中是不可见的,但会触发 DOM 突变事件。
- Window:
- 如果用户确认,sound and video可以被记录。
- 我曾经创建了一个脚本,能够在服务器上传输所有 DOM 突变,让我可以实时观看其他用户使用网站。但不幸的是我没有把它完成到生产状态。但这就是我发现 firebug 问题的方式。
- 还有其他技巧可以检查调试工具是否 运行。这些通常是各种技巧,尝试 google 一些东西。
- 有没有想过您的用户是否启用了 CORS localhost HTTP 服务器 运行?我的意思是,这不值得一试吗?
WebWorkers
允许您在客户机上生成线程。您可以将其用于 分布式处理 或者只是 消耗电池电量 。由于它不直接影响 GUI 线程,他们不会注意到,直到为时已晚。这听起来也是生成 hask 破解和破解证书的好方法。- 您可以更改复制的文本,可能会向其中添加跨站点脚本攻击。好的技巧是用一堆空格来偏移你的脚本,这样它就不会在没有文本换行的典型文本编辑器中看到。
- 使用Desktop notification,你可以假装你是杀毒软件,windows更新...