APP下载

ibon售票系统遭爆有漏洞,专家:曝露网站设计不严谨的老问题

消息来源:baojiabao.com 作者: 发布时间:2024-05-09

报价宝综合消息ibon售票系统遭爆有漏洞,专家:曝露网站设计不严谨的老问题
图片来源: 

张启元部落格

网络玩家张启元近期在其部落格上贴文指出,统一超商ibon线上售票服务旅游专区有漏洞,只要修改网页程式码数值就可以1元购买多张餐券、游乐园门票。专家认为这不是什么重大漏洞,但曝露电子商务网站在设计上不够周严的老问题,呼吁开发者应重视验证回传数值,并对网页程式码加密保护。

张启元是利用开发者常用的检查网页元素功能(在浏览器按下F12)检视ibon旅游售票网页的程式码,发现竟然可以修改票价金额,再以修改的金额完成线上订票,最后他成功以1元买到8张票,引起国内媒体关注,纷纷报导。张启元先前曾因发现到一个可删除脸书创办人Mark Zuckerberg文章的漏洞而声名大噪。

↓ ibon售票的旅游专区订票服务在得知情况之后以系统维护的名义暂停服务,至今尚未恢复服务。统一超商表示,事件发生当下内部已侦测到异常发出安全警示,现在已将发生问题的iBon售票系统-旅游馆服务暂时下架,重新检讨设计及流程,目前不论在7-ELEVEN门市或是ibon网站上暂时无法使用旅游馆售票服务。统一超商强调,其他售票服务并没有受到影响。

张启元表示,他还测试其他网站,发现也有相似的问题,测试的30个网站有20个存在类似的问题。虽然各业者设计上不相同,但仍可透过修改数值达成目的,例如修改商品数量、运费金额、最后付款金额,或透过修改红利点数影响金额,甚至修改信用卡付款数值。他已向这些业者回报。

其实像ibon线上售票服务这样的漏洞,先前就有发生类似的案例。今年4、5月间,一家科技公司老板利用高铁售票系统漏洞以超低价格买票搭车,最后遭到警方逮捕。这位科技公司老板使用插件进入高铁订票网页修改金额,将原本1千多元的票改为100多元,高铁虽然后来进行修补,但这位科技业老板仍能修改座位等级从自由座升级为商务车厢。不论ibon或高铁事件,都曝露网站设计上的瑕疵,使得有心人士可以任意修改资料以低价买到商品,但即使民众发现有漏洞仍应避免贪小便宜而以身试法。

验证回传资料很重要,却常被忽略

对于ibon设计上存在的漏洞,一位不愿具名的资安专家认为,这并非新闻,事实上之前国内也有类似的案例,这次ibon售票系统事件再次曝露了国内开发者在设计上不够严谨的问题,没有预先设想到有人会刻意修改网页数值,未对网页回传的数值作重复验证。

该专家表示,从相关资讯来看,曝露ibon旅游专区售票系统的逻辑,没有对用户回传数值进行验证,使用者端可以任意修改数据,系统没有对回传数值验证是否正确合理,这是设计上不够严谨。相较之下,对数字敏感的金融业者则相当重视回传数值的重复验证。

他总结ibon旅游售票事件是资料正确性的问题。“买了500元的东西,但回传数值被改为0元,你也接受,当然有问题,这是很多公司都疏忽的问题。”

趋势资深顾问简胜财则表示,缺乏相关资料分析ibon售票系统,但从网络上贴出的相关资讯来看,此次漏洞是后台没有验证前台送出的订购资料是否异常,导致消费者可以取巧方式,以相当低价格买到多张优惠票券的不合理情形。建议企业后台一定要建立对前台资讯的验证机制,而网站的重要程式码也不能以明码显示,需要经过加密予以保护,避免被有心人士修改利用。

程式逻辑与商业逻辑的漏洞

在开发与安全领域将近20年的达友科技技术总监林皇兴表示:“这是一个在AP安全上不应该犯的错误,而且是一个很容易解决却很常见的错误。”

他认为ibon售票网站的漏洞其实是一个前端数值回传后端服务器时,没有经过数值验证的错误。他表示,这样的漏洞是软件开发上应该注意的细节,但是却可以在一些提供网络银行服务的业者,或是电子商务网站的购物车下单系统,出现这种常见却容易忽略的漏洞。

林皇兴进一步解释,为了减少不必要的错误,所有系统开发时,都不应该信任所有外部输入的数值,这也是所有程式开发处理的基本原则和态度,毕竟,外部输入的数值,在回传服务器的过程中,有很多可以被窜改的机会。

具体而言,林皇兴指出,ibon售票网站被揭露的漏洞,同时出现程式逻辑漏洞和商业逻辑漏洞两种疏失。

首先,在程式逻辑漏洞上,前端吐资料给使用者时,开发人员不应该让使用者可以修改并回传任何数值的功能,即便是使用浏览器的开发者模式,也不应该可以修改数值甚至回传后端服务器。

其次是商业逻辑漏洞,购票网站吐表单资料给购票者,表单内有购买的票券项目和价格,使用者虽然可以透过下拉式选单,选择想要购买的票券和数量,在这个过程中,系统会显示购票金额供使用者参考,但最后在进行资料回传时,不应该包含金额回传,而是直接捞数据库的资料,计算最后的金额总额,才是比较安全的作法。但ibon网站却允许使用者可以在前端修改应该预设隐藏的金额资料后,未经任何验证就回传后端服务器,才造成这样的商业逻辑漏洞。

面对这样程式逻辑漏洞和商业逻辑漏洞,林皇兴表示,这样的错误很难透过源码检测(Code Review)发现,连自动化的渗透测试工具,也无法发现这样的错误,只有透过人工的渗透测试(Penetration Testing),才可能发现这样的逻辑漏洞。采访报导⊙黄彦棻/苏文彬

2018-02-05 14:25:00

相关文章