又一个登陆框引起的血案

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

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":xxxxxxx})

灵光一闪:可以测试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,呃… 总感觉怪怪的,还是喊狗师傅吧。此时狗哥抿了抿嘴,满意的笑了 = = Taskshi师傅,米斯特新秀,裤兜装满0day的男人!

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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏信安之路

穿越边界的姿势

在企业安全对抗中,红方攻击团队经常会遇到这种情况,在企业的网络边界上获取到部分权限,比如一个web服务器的webshell,然而如何更方便的进行下一步的渗透呢?...

19300
来自专栏ChaMd5安全团队

记一次phpcms漏洞利用到获得服务器过程分享

记一次phpcms漏洞利用到获得服务器 by lshc 随着最近phpcms V9 任意上传和注入poc的流出,在圈内又掀起了一阵漏洞利用浪潮,想到之...

68860
来自专栏开发技术

负载均衡+session共享(memcached-session-manager实现)

  本文的形成参考了很多人的博客,最多的应该是青葱岁月兄的这篇博客,大家可以先去看下,熟悉一些内容,因为本文是直接实践,一些理论性的知识就需要大家自己去补充了。

24130
来自专栏建站达人秀

如何快速搭建 Discuz! 论坛

Discuz!全称:Crossday Discuz! Board,是一套免费使用的社区论坛软件系统,由北京康盛新创科技有限责任公司推出,目前最新版本是Discu...

10.2K80
来自专栏网络

SEO之404页面应该怎么做?

404页面是什么? 404是网页反馈的状态码之一,4开头的状态码是指用户错误,5开头的是服务器错误。而404页面就是当用户提交信息后服务器无法回应或者反馈信息就...

26380
来自专栏HappenLee的技术杂谈

Ubuntu系统下静态DNS配置详解

因为实验室实现的拟态存储系统需要实现动态变更ip地址,所以需要搭建一个dns服务器,并且将需要查询变更ip地址的服务器都绑定到同一台dns服务器之上。通常在Re...

23530
来自专栏冰霜之地

如何快速给自己构建一个温馨的"家"——用Jekyll搭建静态博客

我相信,每个程序员都有一个愿望,都想有一个属于自己的"家"——属于自己的博客,专属的网站。在自己的“家”中,可以和志同道合的兄弟一起分享和讨论任何技术,谈天说地...

33420
来自专栏信安之路

php 后门隐藏技巧

辛辛苦苦拿下的 shell,几天没看,管理员给删了。这篇文章是我个人小小的总结,很多方面都建立在自己理解上思考,如果你有更好的思路,各位表哥们也可以分享。

35200
来自专栏FreeBuf

用某品牌随身WiFi进行钓鱼测试

本文内容仅代表作者观点且只做测试展示,目的是提醒读者注意 WiFi 联网安全,严禁将内容用于不法用途。 前言 搭建钓鱼 WiFi 来盗取账号密码已经成为一种很...

24750

如何在CentOS 7上安装OpenCart

OpenCart是面向在线商家的免费开源电子商务平台。OpenCart提供了一个专业可靠的基础,您可以以此为基础,成功建立一个在线商店。该基金会吸引了广泛的用户...

83350

扫码关注云+社区

领取腾讯云代金券