前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >又一个登陆框引起的血案

又一个登陆框引起的血案

作者头像
FB客服
发布2018-07-31 10:58:48
1.1K0
发布2018-07-31 10:58:48
举报
文章被收录于专栏:FreeBufFreeBuf

继上次登陆框引起的血案这个文章之后,时隔一个月笔者又写了续集,呃……升华版。

0x00 文章内容结构图

0x01 信息泄露

利用泄露的信息可以大大增加我们的可测试点,从而增加我们的成功率。

1. HTML源代码

必看的肯定要属HTML源代码了,源代码里包含了下面所说的JS文件。HTML源代码会泄露很多信息,像程序员未删除的注释、敏感路径等都可能在HTML源代码中找的到,从来增加发现漏洞的成功率。

2. JS文件

很多JS文件中会泄露其他路径,或者敏感函数等。泄露其他路径可以增加我们可以测试的点,泄露一些敏感函数可以实现未授权访问等恶意操作。

3. 其他敏感文件

还可以利用其他途径获得到的文件,如爆破、爬虫等其他方式得到的敏感文件,可能会发现日志文件、配置文件、网站的其他业务页面等。

0x02 点我链接登陆你的账号

这个问题多出现在第三方登陆功能中

1. 主站账号登陆 2. 微信登陆 3. QQ登陆 4. 微博登陆 5. ….

1. 一个二维码引领风骚

呃,小石师傅是真男神,把我带进了米斯特,从此不知归路..……

子业务选择使用主站账号扫码登陆时:

将二维转换为HTTP请求(https://cli.im/deqr/)

可以发现只有一个TOKEN参数:

使用主站APP 扫码进行登录扫描之后,会弹出确认登录框以确认登录。在点击“登录”按钮的之后,发送如下POST数据包来进行登陆:

POST https://xxx.com/xxxx/confirm HTTP/1.1 …. token=xxxxx&source=passport&fingerprint=一大长串字符 删除finderprint参数,发现对请求无影响=>删除 删除referer参数,发现对请求无影响=>可以CSRF 将请求方法改为GET型,发现失败=>只能构造表单进行CSRF

此时受害者只要是主站登陆状态下,发送了我们构造好的这个表单,那么我这里就可以直接登陆他的账号。

2. 二维码又起风波

使用账号所绑定的微信登陆:

扫描之后发现不需要点击确认就登录了,和常规的微信二维码扫描登录完全不一样,这时候才发现原来这里是使用的微信公众号绑定的账户去登录的,解析的二维码地址为:

条件:

受害者微信公众号绑定了账号; 受害者微信内点击我们的链接,我这里就这可以直接登陆了

0x03 劫持用户身份凭证

1. XSS劫持

子站使用主站账号登陆时,来来回回N个数据包,经过我仔细观察,得出重要结论:

如果主站是登陆状态,那么访问如下链接,主站便会返回身份凭证

经过测试发现:这个client_id参数必须存在,但是没有什么影响,不会影响整个攻击。

然后,我们便可以使用返回的这个链接来登陆受害者这个子站。为了获得响应包里面Locatin的值,我们可以使用该域下面的XSS来获得。

2. JSON劫持

当然,如果发现此处返回的用户凭证如下格式,那么当然首先考虑到的便是json劫持了。

关于json劫持,大家可以移步key师傅博客

http://gh0st.cn/archives/2018-03-22/1

0x04 XSS

1.登陆时XSS

POST类型,尝试修改改为GET类型:

发现成功弹窗,呃,即使不能修改成功,那么还可以组合CSRF一起使用。

2. 登陆成功时XSS

所有参数测试一遍,发现link参数,存在xss,直接在script标签里面,并且还送URL跳转一个。

3. 登陆失败时XSS

逐个参数进行测试后,最后发现gourl参数存在xss,过滤了script关键字,使用tab键进行绕过。

4. 利用泄露的文件进行XSS

通过源代码发现了一个隐藏的链接:

打开之后发现提示缺少sid参数,此时手动构造:

点击确定之后,跳过去的是一个荒废的页面,此时我回过头来看了一下源代码,尝试手动添加action、method参数:

发现了method参数有效,此时构造xss payload,成功弹窗(= = 没想到method参数也可以)。

5. 接口JSON XSS

发现请求链接是:http://xxxx/swap/im?callback=jQuery18900926711223842687

而响应包内容是:

代码语言:javascript
复制
jQuery18900926711223842687({"errorCode":1,"errorMessage":xxxxxxx})

灵光一闪:可以测试JSON劫持嘛。但是由于响应包的内容并没有啥作用,所以此处的JSON劫持完全没有危害,但是这里却还可以测试XSS漏洞。

构造如下链接,成功弹窗:

代码语言:javascript
复制
http://xxxx/swap/im?callback=<script>alert(1)</script>

0x05 URL跳转

用户登陆这个功能这里,可以测试的点可以但不仅仅并且不一定是如下几个:

1.登陆成功后跳转到的页面

此处link1参数可以控制跳转到的页面:

2.登陆失败后跳转到的页面

此处的gourl参数可以控制返回的页面:

可以看到设置了自动跳转,(呃……我们让他跳转到mstsec)。

0x06 未授权访问

1. JS文件背后的秘密

在查看源代码时发现引入了该JS文件,跟踪……

发现了两处接口,逐个跟踪。

发现下面那个接口直接未授权访问… 泄露了该站,所有的用户名,此时便可以进行有针对性撞库了。

2.看JS如何不见泰山

通过JS来验证权限时,还可以通过删除JS来实现未授权访问,例如登陆失败时通过JS来实现跳回主页面。简言之便是绕过客户端校验类型,so easy~

0x07 不安全的对象直接引用 | 设计缺陷

1. JS文件GETSHELL

通过读取JS代码时发现这么一段,竟然可以文件上传。

构造如下表单:

成功GETSHELL:

2. 任意用户登陆之绕过客户端校验

登陆成功后相应包里返回一条链接 http://xxx.com/user/login.php?id=MTAw。发现是用户ID的base64编码,此时遍历用户ID,实现任意用户登陆。

3. 最风骚之参数的FUZZ

1)任意后台地址,手动添加参数admin=1之后,发现返回了cookie,成功登陆 2)普通用户时,手动添加debug=1之后,发现权限竟然多了一些。。

呃。。关于参数的fuzz,增删改都可以进行尝试

0x08 感言

笔者现在是米斯特安全团队的成员(外围 .. 并且实习),想对大家说的是:欢迎各位大佬加入我们的团队,一起进行孜孜不倦的学习

呃 … 猝死的那种 ==

最后真心感谢米斯特安全团队各位师傅的指导,他们的思路是真的骚 = =

万分感谢米斯特的各位师傅,协助我完成了这篇文章,包括但不限于:

key师傅,动不动就秋名山走一圈的男人! 小石师傅,我男神!带我走进了米斯特的男人,自此一去不复返 = = 狗哥师傅,dogboy,呃… 总感觉怪怪的,还是喊狗师傅吧。此时狗哥抿了抿嘴,满意的笑了 = = Taskshi师傅,米斯特新秀,裤兜装满0day的男人!

*本文作者:丶楼兰,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 文章内容结构图
  • 0x01 信息泄露
    • 1. HTML源代码
      • 2. JS文件
        • 3. 其他敏感文件
        • 0x02 点我链接登陆你的账号
          • 1. 一个二维码引领风骚
            • 2. 二维码又起风波
            • 0x03 劫持用户身份凭证
              • 1. XSS劫持
                • 2. JSON劫持
                • 0x04 XSS
                  • 1.登陆时XSS
                    • 2. 登陆成功时XSS
                      • 3. 登陆失败时XSS
                        • 4. 利用泄露的文件进行XSS
                          • 5. 接口JSON XSS
                          • 0x05 URL跳转
                            • 1.登陆成功后跳转到的页面
                              • 2.登陆失败后跳转到的页面
                              • 0x06 未授权访问
                                • 1. JS文件背后的秘密
                                  • 2.看JS如何不见泰山
                                  • 0x07 不安全的对象直接引用 | 设计缺陷
                                    • 1. JS文件GETSHELL
                                      • 2. 任意用户登陆之绕过客户端校验
                                        • 3. 最风骚之参数的FUZZ
                                        • 0x08 感言
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档