本篇文章5581字,读完约14分钟

新闻:这篇文章来自于黑云知识库@书呆子不说话

这是ppt“我的通行证你的通行证”的文本分类版本,它与帐户通行证的安全性有关,这是我几个月前在csdn开发者大会上讲的,添加了一些内容。因为懒惰从来没有时间写作,但是一年就要到了,我想我可以为我家乡的孩子们赚更多的压岁钱...

几个月前,当我在测试百度账户系统的漏洞时,我不小心进入了慈运寺桥一家点心店的女收银员的百度网络磁盘。我漫不经心地看着她,突然发现了她的一张裸照,吓得我赶紧合上书。当时我想,如果她是我最好朋友的女朋友,而她的裸照被坏人泄露了。

感同身受之后,我闭上眼睛,暗暗发誓要保护女网友,这是每个人的责任。

这篇文章很长。我建议你让你的女朋友停止等待,先穿上裤子睡觉。

| 81主流黑客的姿势密码漏洞

密码泄露,暴力破解,库冲突,密码恢复漏洞,社会工程库,钓鱼…

身份验证cookie被盗

-XSS攻击、网络泄漏、中间人攻击

其他漏洞

-二维码登录、单点登录、第三方登录、客户端web自动登录、绑定其他帐户登录、oauth登录漏洞…

今天,我不谈密码安全。今天,我主要谈一谈网上常见的一些与通行证有关的“其他漏洞”

|我们来谈谈身份验证cookies的安全性。目前,主要互联网公司的大多数网站都使用cookies来认证用户。如果攻击者获得了身份验证cookie,他就可以登录用户的帐户。

Cookie安全性考虑

Httponly:防止cookie被xss窃取

防止cookie在网络中被盗

安全:防止cookie在非https下传输,当整个站点都是https时,许多cookie会丢失

路径:区分cookie的标识符,它对安全性影响很小,并且与浏览器同源性冲突

Httponly:为了防止cookie被窃取xs的xs攻击,您可以从用户那里获取cookie。但是,如果cookie添加了httponly属性,js就不能读取它,这可以保护我们的cookie在xss攻击中不被窃取。然而,许多安全从业者认为,如果cookies与httponly一起添加,xss不是一个漏洞。这当然是无稽之谈。xss是一个标准的html/js代码注入漏洞。它不仅能偷饼干,还能做很多事。下面将会有很多例子…

在这个“点开我的链接你的账号就被黑了”的年代 如何给你的裸照加把锁?

防止网络中的cookies被窃取。目前,主流网站的认证cookies在互联网上无保护传输,在网络中可能被嗅探或以其他方式泄露。因此,建议高安全级网站使用全站https,不支持http访问,同时使用hsts强制将http请求转换为https请求

安全:防止cookies在非https下传输。当你在整个站点做https的时候,会错过很多cookies。即使您有时在整个站点中进行https,您的cookies也没有添加安全属性。网络中的中间人可以强迫你使用http来访问在第三方页面的整个站点中已经做了https的域,你的cookie也将在不安全的网络中传输。如果添加了安全属性,则该cookie仅在https请求中传输

在这个“点开我的链接你的账号就被黑了”的年代 如何给你的裸照加把锁?

路径:区分cookie的身份,它对安全性影响很小,并且与浏览器的同源性冲突。cookie还有一个路径属性,即cookie的身份,它对安全性影响很小,并且与浏览器的相应策略冲突。虽然路径A下的xs无法读取路径B下的cookie,但是路径A下的xs可以将代码注入路径B的页面,然后读取路径B下的cookie

更好的饼干方案

饼干的不可预测性

httponly+https+secure+hsts

不同的端口从ip,尽量不要部署多个不同的网络服务,因为cookie没有区分端口

|“其他漏洞”的通行证公共通行证相关功能

二维码登录

单点登录

第三方登录

应用嵌入页面登录

绑定其他帐户

跨域传输身份验证信息

Oauth登录

……

|二维码登录的安全风险1。没有行为确认

用户扫描二维码后,系统需要提示用户检查二维码的行为。如果没有确认,用户扫描攻击者的登录二维码,这相当于授权攻击者的票证。

案例:你可以把劫持骗到用户来来往往的账户上。

2.csrf漏洞伪造授权请求

如果票据授权请求是http,攻击者可以伪造它。攻击者可以伪造用户扫描二维码并执行的请求,或者让用户以其他形式授权攻击者的账单。

一些对二维码的授权请求应该只在应用端有效,但是在大多数情况下,当网站登录时,这个请求也是有效的,这增加了攻击面。

案例:

点击我在微博上发的链接,我就可以登录你的淘宝支付宝和微博了。可破解的号码可以挂(有几个从孔连接到poc)

聊着聊着,我去了你的微信——宇云:聊着聊着,我去了你的微信(两个地方都可以劫持微信登陆的漏洞)

维修方案

用户扫描二维码后,系统需要提示用户检查二维码的行为,告知风险,并询问用户是否执行操作

用户确认请求后,攻击者无法伪造请求,例如与用户身份相关的验证令牌

二维码的授权请求在web登录状态下不可用,甚至可以使用非http协议,这样可以减少很多攻击面

|用于绑定其他帐户的安全风险绑定请求不受csrf保护,攻击者可以构造恶意请求,让用户绑定攻击者的帐户。这样,攻击者可以在登录到自己的帐户后操作用户的资源。

案例:点击我在网易的链接将会被非海绵宝宝黑客攻击

此外,第三方帐户绑定越多,您的安全级别就越低,因为您的所有帐户不会同时发生事故的可能性会降低

维修方案

通用csrf预防解决方案,推荐+令牌

当我谈论csrf或jsonp劫持时,我遇到了无数人,他们告诉我引荐人可能是伪造的。我只能说,目前我不知道如何在浏览器端伪造推荐人。如果你可以写你自己的程序来假冒推荐人,那么我们不是在谈论同样的事情

|使用第三方oauth帐户1登录的安全风险。从oauth服务提供程序获取accesstoken后,在与此站点的帐户绑定时,不会检查状态参数,这将导致csrf绑定请求。攻击者可以使用csrf评估让您绑定他的帐户

2.即使检查了状态参数。csrf不保护初始绑定请求,例如通过单击绑定按钮发出的请求

新浪微博等服务提供商的授权具有以下特点。如果当前登录的微博已经授权该应用,它将自动成功绑定。因此,我们可以在新浪微博登录中发现一个csrf漏洞,这样用户就可以自动登录到攻击者的微博上(新浪有这样的漏洞,所以这里不详细说明)。然后让用户访问绑定请求,从而完成对攻击者微博的绑定。攻击者可以通过微博登录用户账户

在这个“点开我的链接你的账号就被黑了”的年代 如何给你的裸照加把锁?

案例:点击我的链接,我可以进入你的空壳帐户

有关oauth的更多安全摘要,请参阅文章:oauth 2.0安全案例审查

|身份验证cookie的不规则传输安全风险身份验证cookie应该只出现在http请求中,并且httponly属性被添加到浏览器存储中,这不会被xss攻击窃取。然而,在一些功能架构中,认证cookie的不规则传输和使用可能导致认证cookie的泄露

页面或接口数据输出当前用户的身份验证信息,这可能被当前页面的xss攻击所利用

Ssrf接口将cookie传输给第三方

案例:

通过糯米xss,你可以绕过chrome,通过两种方式获得httponly bduss(百度云盘数据将在大多数非ie用户点击后泄露)

如果你在微博上点击我的链接,我就可以发送短信,你就可以得到一个小甜饼和其他危害

|单点登录安全风险单点登录的简单原则

要求:如果用户已经登录到站点B,他将自动登录到站点a

实现:用户访问站点A,站点A将用户跳转到站点B,站点B验证用户已经登录,给用户一张票,将票带到站点A,将票带到站点B,验证成功后将用户放入。

以下示例站点将大量出现在下面

a:http://www.t99y

b:http://passport . wanzhan

例如:用户访问http://passport.wangzhan/login.php?

在站B验证站A是白名单域之后,然后302跳转到

http://www.t99y/a.php?机票=*****

然后,a.php使用票证参数去站点B验证用户是否合法,然后给用户一个身份验证cookie

窃取认证信息的一般过程如下,这将在后面详细解释。简言之,攻击的目的是获取用户的票证信息

|常见漏洞场景互联网上几种常见的单点登录场景使用第三方站点提供的通行证或登录证书有不同的方式,因此如何窃取它。

场景1。直接使用票据进行验证

http://t99y/a.php?门票= xxxxxxxxxxxxxx

服务器使用这个票证来验证用户的身份,然后在这个域中验证cookie的种类

窃取想法:

让我们构建页面,并在获取凭证后请求我们控制的服务器上的资源,这样在引用者中就会有票证信息

偷窃的几种方式:

找到一个页面,可以发送自定义src的图片到sso收集门票。包含票证信息的页面将启动图片请求。图片服务是我们自己的。我们可以阅读请求中的推荐人,它将包含票证信息

找到可以发送自定义src的iframe页面,并在iframe请求中引用有票

找到一个带有js跳转漏洞的页面来收集票证。跳转目的地地址是我们的服务。js跳转与referrer关联。阅读此请求的推荐人,其中包含票证

如果img和iframe的src值只允许白名单域的url,那就再找一个白名单域的302跳转漏洞来绕过白名单,302跳转可以传递上个请求的referrer如果img和iframe的src值只允许白名单域的url,那么在白名单域中找到另一个302跳转漏洞以绕过白名单,并且302跳转可以传递最后请求的引用者

Xss获取地址栏信息

原理图如下。下面是我画的一个浏览器。地址栏中的标签参数将包含在下面一些元素的请求的引用中

参考案例:云云:你可以点击我在微博上发送的链接,我也可以登录你的微博(网络版和应用都可以提交这两个漏洞)

场景2,中间页面接收到完成认证的票据,然后跳转到我们的目标页面

http://t99y/login.php?票证= xxxxxxxx & URL = http://t99y/a . PHP将在此时植入身份验证cookie

然后页面将跳转到使用JSP的http://t99y/a.php

location . href = " http://t99y/a . PHP ";

例如:一个可以在绑定微博账户后自动登录的网站

偷东西的几种方法

找到一个有302跳转漏洞的页面,如b.php,启动一个单一的登录请求,然后b.php与机票信息将跳转到我们的服务。因为js的跳转会带来引荐,然后把引荐传递给我们可以通过302跳转控制的页面

Xss获取当前页面引用者

场景3,中间页面接收到完成认证的票据,然后跳转到我们的目标页面302

多个302跳,如下所示:

http://passport.wangzhan/login.php?网址

http://t99y/login.php?ticket = xxxxxxxxxxxxxx xx & URL = http://t99y/a . PHP

http://t99y/a.php

偷窃的方式:

Xss创建了iframe,这是一个超长的cookie,它使302带有票据拒绝服务,然后使用iframe . content window . location . href读取最后一个iframe的当前地址

拒绝服务还有一个好处,就是可以防止某些票证被重放

案例:当网易用户登录时,点击我的链接,我可以输入他们的电子邮件、云笔记和其他服务

上述方法不适用于ie的某些版本,因为ie在无法打开页面时会加载自己的本地页面,这导致了错误页面和我们的xss页面的不同来源

维修方案

认证中心为跨域的子站设置认证cookie

单点自动登录需要保护csrf,这样用户就不能伪造登录请求

|登录app中嵌入页面的风险。当我们在应用程序中打开一些公司产品的链接时,将会添加认证信息,让用户自动登录。

微博客户端、qq客户端和微信客户端已经或正在出现此问题,通常会添加sid、gsid和密钥等参数

案例:伍云:我聊天的时候去了你的微信(两个地方都可以劫持微信登陆的漏洞) ">我聊天的时候去了你的微信。

案例:移动qq空的身份因素可能被盗

案例:以前有一个手机qq漏洞,找一个qq域论坛发一张图片,然后把这个页面发给手机qq上的一个朋友,他点击时就会被黑客攻击

偷东西的几种方法

查看单点登录场景1的几种方式

用户甚至可以通过应用程序的共享功能将认证信息分享给电子邮件或朋友

维修方案

不要直接向webview的url添加身份验证凭据来完成身份验证

可以使用cookie或post

|从通行证获得的跨域凭证从通行证获得的跨域登录票证

该表单类似于http://www.wangzhan/sso/getst.php?回调=jsonp

然后,传递将以jsonp格式返回数据,其中包含身份验证信息

案例:你可以点击我在微博上发送的链接,我可以登上你的微博

偷东西的几种方法

存在jsonp劫持漏洞

Referrer不受严格限制,可以通过字符串匹配绕过。或者支持空referer,您可以使用一些技巧来绕过issue空推荐人请求

Xss漏洞,从该接口跨域请求数据

维修方案

这个方案不应该在架构上使用

不要混淆应用程序和网络之间的界面,确保界面干净和单一。我遇到过这样的情况,为了彼此兼容,网络和应用降低了自己的安全策略或者使用了不合理的架构

主流单点登录的一些问题,如漏洞信息,但有时架构中的一些小问题可能会导致漏洞或使攻击者更容易利用漏洞。

单点登录的一些常见安全风险如下:

每个站点的票证都是通用的,许多都直接使用身份验证cookie

身份验证cookie设置没有得到足够的保护。

sso向变电站授权的票证可以重放

sso授权给变电站的票据的有效期特别长

身份验证信息传输不使用https

Sso尚未加入ip或ua等风险控制策略

攻击者在没有警告的情况下窃取账单后,可以很容易地使用它

票据的交互过程没有得到很好的保护,容易被漏洞窃取。(单点登录应该跨域发布一个好的流程)

更改密码后,身份验证cookie不会过期

用户注销后,身份验证cookie不会过期

自动登录、绑定和注销等敏感功能,无需csrf保护

绑定第三方帐户以降低您的安全级别

应用程序和网络界面是混合的,导致较低的安全级别

案例:你在窗口打开qq,点击我的链接,我将进入你的qq邮箱财付通等。(任何腾讯xss都使用qq的clientkey)

除了xss漏洞,在这种情况下还有两个安全设计问题,上面已经提到:

身份验证cookie保护不足

自动登录、绑定和注销等敏感功能,无需csrf保护

总而言之,网络是我的家,安全取决于每个人。保护女性网友,给她加把锁。

标题:在这个“点开我的链接你的账号就被黑了”的年代 如何给你的裸照加把锁?

地址:http://www.j4f2.com/ydbxw/5019.html