freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课
FreeBuf+小程序

FreeBuf+小程序

官方公众号企业安全新浪微博

国内领先的互联网安全新媒体,同时也是爱好者们交流与分享安全技术的社区

挖洞经验 | Townscript票务平台的任意账户劫持
2020-05-30 13:00:05

本文讲述了印度票务平台Townscript缺乏速率限制,以及密码重置缺陷导致的任意账户劫持漏洞。速率限制(Rate Limiting)仍是大多数Web应用不太重视的问题,但一旦与其它功能形成漏洞利用,也将会导致严重的危害影响。

漏洞发现

Townscript是一家印度在线活动票务公司,主要提供研讨会、展览、马拉松和冒险活动等项目的登记、注册和售票服务,只要用户发布活动项目,注册和购票页面就会自动生成,其于2017年被印度另一家在线票务平台BookMyShow收购。

近期,我们打算在印度国内举办名为“Letshack”的安全训练营活动,作为活动发起方,我们把该项活动的售票放到了Townscript平台。不巧的是,注册进行了一段时间之后,我就把绑定Townscript平台的邮箱密码和登录Townscript平台进行注册人员管理的密码都忘记了,糟糕!已经注册了500多人,而且活动将在数周后开始,这该如何是好!思来想去,我注册了一个新的Townscript账户打算向Townscript官方发邮件看看有何解决办法。

但之后,我想就着测试一下Townscript应用吧,看看是否存在漏洞可利用以找回我的先前账户...。说整就整,起初我想到的就是SQL注入,虽然SQL注入漏洞影响较大,但发现过程稍显复杂,我就把测试重点放到了相对简单的登录和注册页面上。

接下来,我就测试了登录页面上的“忘记密码”功能,经过一番分析之后,我发现该“忘记密码”并没有部署速率限制措施(rate limit),那是不是可以据此对其它人的账户密码来个暴力枚举呢?

我以我当前新注册的Townscript账户为例,在忘记密码功能区域输入了与该账户绑定的邮箱地址,然后点击“找回密码”,然后,我在该账户绑定的邮箱中收到了以下找回密码的链接:

可见,上述找回密码链接非常简单,其中包括了绑定账户的邮箱地址和一个code,该code是一个6位数的数字。那就用我之前账户的邮箱地址来试试吧,随便输入一个code值,用Burp来暴力枚举试试:

把6位数的构造字典拉进去就是一番枚举,但大部份响应看似都是一些404页面未找到的302响应,在我快要放弃的时候,我又检查了一下响应长度,一看,其中存在长度为391的响应:

尝试着把该响应进行转发,哇,竟然可以成功跳转到以下密码重置界面!

就这样,在密码重置功能缺乏速率限制(Rate Limit)的情况下,我通过暴力枚举重置了我之前忘记了Townscript登录密码和绑定邮箱密码的Townscript账户,成功找回了丢失的Townscript账户权限,以及其中注册的数百个参与人员信息。

但是,Townscript应用在账户设置中严禁更改用户的绑定邮箱,所以,即使根据上述密码重置漏洞劫持了受害者账户,但受害者一样还可以通过自己的绑定邮箱再次发起密码重置请求,找回账户,那对攻击者来说,这就不算真正意义上的账户劫持。

接下来,我对Townscript应用中的用户设置(edit)操作请求进行了抓包,从中发现了包含的用户绑定邮箱地址,然后我尝试对其进行了替换:

之后,竟然可以成功实现邮箱修改:

这样一来,也就是说,我可以利用密码重置缺乏速率限制+Code暴力枚举+更改用户绑定邮箱,实现真正意义上的账户劫持,只要知道对方用户的Townscript绑定邮箱,就能对其实施账户劫持。

经验总结

针对登录页面或密码重置功能可以多花点心思进行研究,尤其是对其中的参数、编码或用户属性进行测试,另外,缺乏速率限制也是当前大多数Web应用存在的问题,可以考虑用它来与其它功能进行组合利用。

*参考来源:medium,clouds 编译整理,转载请注明来自 FreeBuf.COM

本文作者:, 转载请注明来自FreeBuf.COM

# 挖洞经验 # Townscript # 任意账户劫持
被以下专栏收录,发现更多精彩内容
+ 收入我的专栏
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦