通过电子邮件地址即可以找到你的LinkedIn个人资料

admin 2021年4月9日18:06:24评论132 views字数 4693阅读15分38秒阅读模式
通过电子邮件地址即可以找到你的LinkedIn个人资料点击上方蓝字关注我们


通过电子邮件地址即可以找到你的LinkedIn个人资料


概述


本文中,研究人员主要介绍了一些LinkedIn外部API的隐私问题,并演示了如何通过电子邮件地址找到与其关联的LinkedIn个人资料。此外,也可以通过LinkedIn个人资料进行反向搜索,找到某人的电子邮件地址。在此次去匿名化攻击中,研究人员利用了LinkedIn与Outlook和YahooMail的集成功能。

功能


研究人员最初注意到在使用Outlook邮件客户端时,页面上有多个显示与该联系人相关的其他信息的标签。其中的一个标签是该联系人的LinkedIn个人资料,里面包含了联系人的公司名称、职务、过去的经历和位置等。看到这些,研究人员开始好奇邮件客户端是如何找到这些个人资料的?


通过电子邮件地址即可以找到你的LinkedIn个人资料


通过电子邮件地址即可以找到你的LinkedIn个人资料


研究人员通过查看HTTP请求,注意到Outlook客户端在显示个人的详细信息时,将通过WebSocket交换数据。请求或响应的消息采用一种不常见的格式进行编码,如下图所示:


通过电子邮件地址即可以找到你的LinkedIn个人资料


该请求是通过WebSocket向https://sfnam.loki.delve.office.com发出的。通过查看启动通信的JavaScript代码,可以找到负责上述编码格式的代码。Chrome中的“网络”标签将显示用于启动给定WebSocket通信的JavaScript文件和源代码,如下图所示:


通过电子邮件地址即可以找到你的LinkedIn个人资料


查看Chrome突出显示的源代码,研究人员发现该代码可以处理新的请求和响应。在以下的代码片段的onMessage回调处理程序中,我们可以看到,接收到的消息将转换为UInt8数组,并使用inflateRaw方法从Pako模块解压缩。Pako是一个支持LZip压缩算法的库。InflateRaw()函数使用LZip压缩,不包含文件名和修改日期的元数据标头。


 }, e.prototype.onMessage = function (e) {            var t = this;            this.inflateData(e.data, function (n) {                try {                    t.setServerPingTimerIfEnabled();                    var r = JSON.parse(n), o = k()(r.Key, 10);                    if (-1 === o) return;                    if (r.Headers = r.Headers && q(r.Headers), o in t.activeRequestsMap) {                        var i = t.activeRequestsMap[o];                        i && (clearTimeout(i.timeout), setTimeout(function () {                            return i.onSuccess(r, e.timeStamp)                        }, 0)), delete t.activeRequestsMap[o]                    } else t.logError("WebSocket-onMessage-UnableToFindResponseKey", {Key: o.toString()})                } catch (e) {                    t.logError("WebSocket-onMessage-ReceiveFailure", {Exception: e.message})                }            })        }, e.prototype.inflateData = function (e, t) {            return G(this, void 0, void 0, function () {                var n, r, o;                return W(this, function (i) {                    switch (i.label) {                        case 0:                            return this.compressionDisabled ? (t(e), [3, 4]) : [3, 1];                        case 1:                            return i.trys.push([1, 3, , 4]), [4, this.getPako()];                        case 2:                            return n = i.sent(), r = n.inflateRaw(new Uint8Array(e), {to: "string"}), t(r), [3, 4];                        case 3:                            return o = i.sent(), this.logError("WebSocket-inflateData-PakoInflateFailure", {Exception: o}), t(""), [3, 4];                        case 4:                            return [2]                    }                })            })


知道编码格式后,研究人员创建了一个简单的ZAP插件,如果请求和响应的消息与LZip或GZip格式匹配,ZAP将自动对其进行解码,如下图所示:


通过电子邮件地址即可以找到你的LinkedIn个人资料

从以下代码中,我们可以看出有些请求是为LinkedIn终端制作的,这些请求负责在JSON消息中使用/api/v1/linkedin/profiles/full路径加载LinkedIn个人资料。发送到sfnam.loki.delve.office.com的请求大多都是以JSON格式包装的HTTP请求。JSON属性网址类似于HTTP路径,且所有标头都在标头属性下。研究人员在没有WebSocket连接的情况下,直接在HTTP中测试该请求,也可以访问相同的功能。

{  "Key": "15",  "Url": "https://sfnam.loki.delve.office.com/api/v1/linkedin/profiles/full?PersonaDisplayName=Peter%20Gibbons&ExternalPageInstance=332c2687-71f7-49df-8b7c-b2402ccbf473&UserLocale=en-US&OlsPersonaId=&AadObjectId=&Smtp=kmitnick%40mitnicksecurity.com&UserPrincipalName=&PersonaType=User&RootCorrelationId=2933990e-0cc2-4406-8103-0cba160e7047&CorrelationId=2933990e-0cc2-4406-8103-0cba160e7047&ClientCorrelationId=0d3bf626-18d0-46bf-8ce4-667b7bb485b4",  "Verb": "GET",  "Headers": {    "Accept": "text/plain, application/json, text/json",    "X-ClientType": "OwaMail",    "X-ClientFeature": "LivePersonaCard",    "X-LPCVersion": "1.20201124.2.1",    "authorization": "Bearer EwAYA9[...]",    "X-HostAppCapabilities": "{}"  }

该功能正在使用指定的名称和电子邮件地址,查找已注册的LinkedIn个人资料。此处将名称“Peter Gibbons”和电子邮件“[email protected]”作为参数传递。

研究人员使用另外一个陌生的电子邮件地址替换上诉地址,服务器将返回以下所示的JSON消息,其中包含与该地址相关的用户的完整LinkedIn个人资料。

{  "Key": "4",  "StatusCode": 200,  "ReasonPhrase": "OK",  "Headers": {    "X-WebSocketCorrelationId": "9cb14592-5728-******",    "Cache-Control": "no-store",    "Server": "Microsoft-HTTPAPI/2.0",    "X-BEServer": "_Loki_10716",    "X-DataCenter": "PROD_NORTHCENTRALUS",    "X-ServerVersion": "0.20201202.4.1",    "X-Content-Type-Options": "nosniff",    "X-TokenTtl": "86390",    "X-InboundDuration": "14",    "X-CorrelationId": "9cb14592-5728-47c5- ******,    "Access-Control-Allow-Origin": "https://sfnam.loki.delve.office.com",    "Access-Control-Allow-Credentials": "true",    "Access-Control-Expose-Headers": "X-ServerVersion,X-InboundDuration,X-BEServer,X-TokenTtl,X-SocialDistance,X-CorrelationId,X-DataCenter,x-azure-ref,Retry-After",    "Date": "Mon, 07 Dec 2020 16:26:01 GMT"  },  "Body": "<<JSON escaped string>>"}

响应体属性中包含如下所示的JSON对象,数据中包含全名、公司、位置、专业经验、学校出勤率和个人资料地址。

{"resultTemplate":"ExactMatch","bound":true,"bindUrl":"https://login.live.com/accountbind.srf?provider=linkedin.com&redirect_uri=https://loki.delve.office.com/linkedInAuthRedirect.aspx&client_id=000000004C1E916B&dualbind=1&mkt=en-US&external_app=Owa&dualbindmobile=True","persons":[{"id":"urn:li:person:DgEN90FFXdpXh-OCiFTGl3l0pTo6d4ub6h19lWlc7mE","displayName":"Kevin Mitnick","headline":"The World's Most Famous Hacker | CEO | Author | Professional Speaker","companyName":"Mitnick Security Consulting","location":"Henderson, Nevada, United States","photoUrl":"https://media.licdn.com/dms/image/C4E03AQEKmI4XcvU8nQ/profile-displayphoto-shrink_800_800/0?e=1613001600&v=beta&t=o8EaQb4TeZn9JhUOTJJOS3PA9uzaewnHWO7n7nJNDfw","linkedInUrl":"https://www.linkedin.com/in/kevinmitnick", 
//... JSON messages also include schools, work experience, company details, }

值得注意的是,该操作无需与LinkedIn用户进行任何交互。现在,我们已经通过任意电子邮件地址获取LinkedIn个人资料了。

总结


该功能可以被恶意攻击者用于进行去匿名化攻击、凭证填充,以及网络钓鱼攻击等恶意活动。为了避免遭受到此类攻击,建议用户禁止任何人可以通过电子邮件地址查看个人资料,并拒绝与不认识的用户建立连接或向所有人隐藏联系信息。

通过电子邮件地址即可以找到你的LinkedIn个人资料

END



通过电子邮件地址即可以找到你的LinkedIn个人资料


好文!必须在看

本文始发于微信公众号(SecTr安全团队):通过电子邮件地址即可以找到你的LinkedIn个人资料

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月9日18:06:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过电子邮件地址即可以找到你的LinkedIn个人资料http://cn-sec.com/archives/331023.html

发表评论

匿名网友 填写信息