点击上方[蓝字],关注我们
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号团队不为此承担任何责任。
文章正文
这篇文章是关于我在钦奈实习期间,我偶然发现钦奈地铁订票系统中的一个关键漏洞。通过仔细研究系统的内部工作原理,我能够利用一个缺陷,以相当大的折扣/几乎免费预订门票。
初始阶段
这一切都是从我必须搬到钦奈完成我的实习开始的,在那里我必须通过地铁从我的住宿到办公室。这是我第一次乘地铁旅行,我有点兴奋他们是如何管理所有这些旅客的订票和验证的。所以我在旅行中观察到的是,钦奈地铁使用基于QR码的车票扫描,以便打开通往站台的大门。我从售票处手动拿了票,看到了票上的二维码和其他细节。这里所有的安全研究人员都会理解研究这个问题的冲动,并认为QR码数据会有什么?如果我可以查看或操作数据呢?是的,所有这些问题也都在我脑海中闪过。所以我想通过使用QR码扫描仪应用程序扫描QR码来查看门票。
发现阶段
为了更好地了解情况,我收集了3-4张门票,并扫描了所有门票的QR码。在分析这些门票的数据时,我观察到有一些加密的令牌,门票号码和预订门票的日期时间。所有的细节,如始发站和目的地站,我猜都存在于这个加密的令牌值中。因为这些票是从售票柜台产生的。我不知道这个代币是如何产生的,背后的实际机制是什么。我把这个放在一边几天,突然我从我的朋友那里知道,我们也可以从他们的在线门户网站预订门票。我就想,现在让这开始了。我立即访问了网站在线预订门票,看看门票是如何生成的。它看起来是这样的:
img
所以这个网站是非常非常简单和用户友好。我们只需要输入起点站和终点站。票价将自动计算,通过在线方式支付后,我们将获得QR码车票。我们甚至可以看到我们预订的机票历史。
分析阶段
因此,我打开了Burp Suite代理并观察了流量,我发现所有到服务器的流量和来自服务器的流量都是加密的。我们无法看到数据实际上是从服务器发送到服务器的。你可以在这里看到请求:
img
像这样每个请求都被加密了,我们无法看到实际发生了什么。我认为这里没有任何意义,因为它没有任何意义。所以,只要看看其他请求,我发现一个请求是一个API端点,用于以加密格式从服务器获取票价详细信息。因此,当我们选择始发站和目的地站时,它将向服务器发送请求,以获取该路线的票价详细信息。由于它也是加密的,我们不能编辑或做任何与票价细节太。
流量
我只是观察到实际的流程是什么,即使请求是加密的。所以流程是这样的:
1. 我们必须输入来源和目的地。
2. 加密请求发送到服务器以获取票价详细信息。
3. 从服务器收到的关于票价的加密响应。
4. 前往付款页面并预订机票。
这是整个票务预订过程发生在后端的流程。票价请求看起来像这样:
img
The Hack
我想尝试的第一件事就是获得距离较短的旅程的票价响应。记下它。然后,当请求更远距离的旅程的票价时,将响应替换为前一个。因此,它没有显示任何错误,而是将我重定向到付款页面,在那里我可以成功支付,并生成机票。我就想这是真的吗?我刚刚买了一张8 -90%折扣的机票?我现在几乎可以免费乘坐地铁了?我用同样的方法订了另一张票,又成功了。
现在让我告诉你完整的流程和细节:
示例:Thousand Lights到Ag-DMS:票价:8卢比
示例:Thousand Lights到阿肖克纳加尔:票价:32卢比
1. 我记下了第一个加密的票价响应,即距离更短,票价金额更低。
2. 我用以前的加密响应替换了新的响应,即更远的距离和更高的票价。
3. 付了钱,买了一张从千灯到阿肖克纳加尔的票,8卢比,而不是32卢比。
Generated Ticket 生成票证
即使在生成此票后,我认为当我们尝试在入口处扫描时,它可能无法工作。只是为了确认我在入口处扫描了车票,然后从起点到终点站(你知道那种感觉对吗?^_^).我走出车站
😂😂
而不是使用它为我自己的目的,我决定报告这一点,以适当的部门,并得到修复。
我立即向Chennai Metro Rail部门报告了这个漏洞,我很快就得到了回复,现在这个漏洞已经被修复了。
img
我重新测试了错误,并确认它现在是固定的,但我想有没有办法我可以免费旅行?有趣的部分又来了。
利用IDOR
重新测试后,我移动到票证历史记录选项卡,看到我们可以查看通常基于某些浏览器身份验证的票证。因此,我们可以看到仅在我们的设备和浏览器中预订的门票。
我看了一下bur suite中的HTTP请求。在这里我找到了一个端点/tickethistory/<ticket id>/qr
。这个端点发出了一个GET请求,响应收到了票证详细信息和QR。
我只是简单地将ticketid更改为递增/递减值并发送请求。在这里,我再次能够看到任何人的票和QR码。
img
我该如何利用这一点呢?我只是不断下载最新的门票与匹配的车站,并立即扫描代码之前,原来的票保持器扫描。使原始用户的票证无效。是的,我为他/她感到难过。你知道只是为了影响。是吧?
我又写了一份报告并发送出去,几个小时后我就得到了回复,说这个问题也已经解决了。
文章来源:https://infosecwriteups.com/the-ticket-hack-free-travel-by-hacking-the-chennai-metro-rail-6ddaf5457ecf
技术交流
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...