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

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

呃 ... 猝死的那种 ==

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


已投稿FreeBuf:

http://www.freebuf.com/articles/web/178687.html

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

而响应包内容是:jQuery18900926711223842687({"errorCode":1,"errorMessage"2016qiao.gifxxxxxx})

灵光一闪:可以测试JSON劫持嘛

但是由于响应包的内容并没有啥作用,所以此处的JSON劫持完全没有危害

但是这里却还可以测试XSS漏洞

请输入图片描述

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

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,呃... 总感觉怪怪的,还是喊狗师傅吧。此时狗哥抿了抿嘴,满意的笑了 = =

Takeshi师傅,米斯特新秀,裤兜装满0day的男人!


本文由 TEag1e 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gificon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.pngicon_rolleyes.gif2016gz.gif2016kun.gif2016zhem.gif2016am.gif2016kel.gificon_twisted.gif2016lh.gificon_neutral.gif2016ka.gif2016tx.gificon_evil.gif2016bb.gif2016yun.gif2016qq.gif2016baojin.gificon_confused.gif2016kk.gif2016zk.gif2016kb.gificon_mad.gif2016yhh.gificon_exclaim.gif2016xia.gif2016gg.gif2016qd.gificon_smile.gif2016lengh.gificon_biggrin.gif2016bz.gif2016wq.gificon_eek.gificon_arrow.gificon_wink.gif2016tuu.gif