一个银行业通杀的敏感信息泄漏通用漏洞

无意间发现银行的门户站点,都可能存在敏感文件泄漏,甚至有些敏感信息存在xwork,不过存在防火墙没有进一步验证,绕过防火墙。这个通用漏洞主要是泄漏了内部上传的一些.doc .pdf .xml .ppt .rar等文件信息,也有敏感的url等。从银行排行榜依次测试,20多个银行都适用,继续找的话都是类似的了。
首先用wapiti扫描一下,wapiti http://bank.com –v 2 ,发现wapiti的爬虫模块特别强,能挖掘出很多ajax的url,有的用unican-gui扫描,有些wapiti发现不了,uniscan可以发现了,总体来说wapiti的爬虫模块要强势一些。uniscan-gui是图形化的,直接输入上网址就好了,检查目录和文件,或者全选收集其他信息也可以,有些xss会直接被扫出来。
如果用unscan-gui扫描出的话,会出现很多敏感文档url,这些url就有可能是敏感文件,要一一下载检查后,才能确定是不是敏感文件,手工下载太慢了,用python脚本写了个自动下载的功能,如下:

import requests,re

headers={       "User-Agent":"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36",
                "Accept":"*/*",
                "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
                "Accept-Encoding":"gzip, deflate",
                "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
                "Connection":"keep-alive",
                "X-Requested-With":"XMLHttpRequest",
        }

#断点下载文件函数
def downfile(url,headers):
    url = url.replace('\t','').replace('\n','').replace(' ','')
    filename = url.split('/')[-1].replace('\t','').replace('\n','').replace(' ','') #根据网址取文件名,并去掉空格和换行
    #print filename
    headers['referer'] = re.findall(r"^http://.*?/{1}",url,re.I)[0]  # referer
    data = requests.get(url = url,stream=True,verify=False,headers = headers)
    with open(filename, 'wb') as f:  
        for file in data.iter_content(chunk_size=1024):  
            if file: # 文件流形式写入
                f.write(file)  
                f.flush()
        f.close()
    print u"文件",filename,u"文件下载完成!"

#downfile("http://www.*bank.com.cn/upload/Attach/mrbj/2702888780.pdf",headers)

for line in open("1.txt"):
    downfile(line,headers)
else:
    print "exit!"

自动下载下来后,检查那些不是允许所有用户下载的文件好了。
如果用wapiti扫描的话,爬虫结果中会有所有的url,这种情况下要清理下数据,才能做下载,于是也写了个清理数据的小脚本辅助查漏洞,如下:

import requests,re
file_object = open('1.txt', 'w')
#读取文件的每一行
for line in open("bak.txt"):
    if not ".html" in line:
        print line
        file_object.write(line)
else:
    print "exit!"
    file_object.close()

要根据实际情况修改脚本文件。
之后又晓得一个开源的工具 metagoofil,通过谷歌去收集文件,这款工具的原理和wapiti爬虫是不一样的哦、

发表评论

电子邮件地址不会被公开。 必填项已用*标注