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

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

缺陷编号:wooyun-2015-0138498

漏洞标题:91导学网伪静态SQL注入+前台任意用户密码重置+目录遍历等多个漏洞(可刷币/可影响数据库)

相关厂商:91导学网

漏洞作者: wy007

提交时间:2015-09-02 10:21

修复时间:2015-10-17 10:22

公开时间:2015-10-17 10:22

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-10-17: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

这个案例告诉我们...惊喜无处不在...

详细说明:

网站首页:
http://www.91daoxue.com/
对于这个网站了解不多,简单看了一下,好像是针对小学——高中的一个学习教育平台,听说做的还不错.
简单的公司介绍:

企业介绍.png


本是无意间发现的这个网站,第一眼简单一看网站做了伪静态,
不过看着伪静态的规则很简单,参数很明显,于是就测试了一下,
结果发现可注入...
然后就有了接下来的故事...

漏洞证明:

我们就先从伪静态注入说起吧..
伪静态注入点:
http://www.91daoxue.com/index.php/Course/content/id/6202
先是手工测试了一下,伪静态地址是否存在注入

手工判断伪静态注入点1.png


手工判断伪静态注入点2.png


OK,判断成功,确实存在注入点.
接下来直接丢进注入神器SQLMap中自己跑去吧...
检测到注入点:

SQLMap发现注入点.jpg


当前网站所使用数据库和数据库管理员及权限:

当前数据库用户和权限.jpg


所有数据库列表:

数据库列表.jpg


available databases [6]:
[*] daoxuewang
[*] information_schema
[*] mysql
[*] performance_schema
[*] test
[*] zhangshiyong


daoxuewang数据库的所有表信息:

数据表.jpg


Database: daoxuewang
[31 tables]
+------------------+
| v_admin |
| v_clabj |
| v_cladocs |
| v_class |
| v_clauser |
| v_code |
| v_collection |
| v_course |
| v_docs |
| v_error_fl |
| v_feedback |
| v_firstpic |
| v_homework |
| v_inout |
| v_order |
| v_order_item |
| v_pingjia |
| v_question_reply |
| v_questions |
| v_school |
| v_share_class |
| v_shop |
| v_stuhomework |
| v_teacher |
| v_tiku |
| v_tiku_error_fl |
| v_tiku_teacher |
| v_uploadfile |
| v_user |
| v_userpapers |
| v_zujuan |
+------------------+


从上面的表名中可以分析v_admin应该是存放网站管理员的数据表,
而v_user和v_teacher分别是网站注册用户和注册教师,
下面我们来看一下到底是不是...
既然是root权限,我们可以进sql-shell中直接执行MySQL查询语句看一下(本来想直接os-shell进行提权的,无奈不知道网站存放的物理路径,也懒得去继续找爆路径的漏洞)
v_user表的数据:

用户数据.jpg


7446条用户数据.jpg


查了一下,这个表有7746条数据(即注册用户7746个),也还是不算少的。
连同其它几个表一起看了一下,数据都还是不少的。

数据库信息数量.png


既然有了用户数据,那么就随便找一个登录网站看看能不能有新发现吧。
随便从上面加密的MD5密码中找了一条然后进行解密。
解密结果:

shuihu解密成功.png


用户登录页面:

登录页面.png


提现用户.png


我们来看看账户管理里面有什么...

账户余额.png


意外的发现居然有账户余额(虚拟币...)
而且在旁边不远处还有一个是账户提现...

账户提现.png


可以看到,这个虚拟币还是很值钱的...等价RMB
而且是支持支付宝的...很多黑产牛们的支付宝是不是这么被封的啊...(个人猜测而已~各位淡定,千万不要去搞破坏哦,会被警察叔叔抓的...)
好了,为了安全起见就不进一步测试能不能提现了...
下面继续我们的渗透测试...
既然一开始我们读取了v_admin发现了网站管理员的用户和密码,那么先试着看看能不能找到网站后台吧...
用了几个网站路径扫描工具扫了一遍,没有什么收获...
于是放弃了从后台这一步了...
其实渗透测试做到这里的时候,已经明显感觉到这个网站整体的安全性很低,很多环节一触即破
于是乎,打算对网站服务器扫描一下端口看看能不能获得一些更多的信息...

开放端口.png


可以看到扫到了几个端口,于是挨个测试了一下,又有了意外发现...
PHPMyadmin数据库管理后台地址:

PHPMyadmin数据库后台.png


目录遍历漏洞:(有MySQL数据库备份文件)

目录遍历漏洞.png


SVN服务端口:

SVN服务开放.png


这一扫,还是收获颇多的。
既然发现了MySQL数据库的管理后台,那么我们只要想办法把root的hash密码给破解出来,就可以登录进去了。
刚开始的时候我们看到数据库用户是root权限,那么可以读一下root的hash密码,
然后去试一下能不能解密...

Root用户密码.jpg


Root密码解密成功.png


可以看到是一条收费的MD5记录...
不要紧,这里找了一位大牛帮忙破解...

Root密码.png


root密码已经破解出来了。
OK,让我们登录一下看看...

PHPMyAdmin后台登陆成功.png


进到这里,其实已经可以为所欲为了。
我们刚才前面提到,注册用户的账户管理里面有一个账户余额(导学币),
来到这里,我想大家一定和我一样有个想法想去验证一下...

用户数据查询.png


可以看到这里的9.95和上面的账户余额是一样的哦~
也就是说只要修改amount这个字段就可以实现任意刷币哦~(不敢想下去了o.o)
好了,YY就到这里...(用户数据未做更改,只是截图说明一下而已...)
还有最后一个漏洞...也算是比较严重的
扫路径的时候,发现了一个地址很可疑,于是点进去看了一下...

越权重置密码.png


发现没有...这个应该是一个重置密码的链接...
不过怎么没有设置重置密码的用户呢?
先不要着急,我们来设置一下密码,
然后BurpSuite抓包看一下有没有什么发现。

BurpSuite拦截重置密码请求包.png


看到里面有一个email=字段居然是空值...
据我们上面的经验来看,这个email应该是我们的注册邮箱或者是注册用户名,
因为注册用户名都是用邮箱注册的...
我们来修改一下试试。

密码修改成功1.png


密码修改成功2.png


可以看到提示修改密码成功...
到这里,基本上所有漏洞演示已经结束...
以上所有操作并未修改用户数据,也未进行拖库等操作,
网站管理员不放心,可自行在检查一遍即可...
所有操作只是登陆查看做截图演示用。
建立了一个测试账号, 测试完毕已经删除。
网站联系方式...

联系方式.png

修复方案:

1.伪静态注入:对.htaccess伪静态规则进行重新设计,建议复杂一些,不要太容易猜解。
2.目录遍历漏洞:设置访问权限,关闭对外访问。
3.SVN服务端口:设置访问权限,关闭对外访问。
4.任意用户密码重置:检查用户密码重置源码判断语句,语句逻辑不严谨,导致出现越权访问,增加权限判断

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝