渗透测测技巧之手机号爆破
时间:2022-07-28
本文章向大家介绍渗透测测技巧之手机号爆破,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
某次内部渗透测试的时候遇到登录处无图形验证码、频次等限制机制,这种是需要整改的,但是如果没挖到有效的漏洞可能就会被开发小哥哥挑战,让人整改也就没底气,遂进一步利用了下。
0x01 特殊手机号生成
业务系统在开发测试阶段基本上都会使用一些常用的测试数据,用户手机号也不列外,基本上不大会使用真实手机号,而是一些简单的测试手机号来进行调试。
手机号是由11位存数字组成,前三位是网络识别号,中间四位是地区编码,最后四位是用户号码。
编写脚本生产特殊手机号字典
a = ['11111111', '00000000','22222222','33333333','44444444','55555555','66666666','77777777','88888888','99999999','12345678']
b = ['0000','1111','2222','3333','4444','5555','6666','7777','8888','9999']
c = ['0000','1111','2222','3333','4444','5555','6666','7777','8888','9999']
d1 = ['134','135','136','137','138','139','147','150','151','152','157','158','159','178','182','183','184','187','188']
d2 = ['130','131','132','145','155','156','185','186','176','175']
d3 = ['133','149','153','180','181','189','177']
phone = list()
for i in d1:
for n in a:
_ = '{}{}'.format(i, n)
phone.append(_)
for i in d2:
for n in a:
_ = '{}{}'.format(i, n)
for i in d3:
for n in a:
_ = '{}{}'.format(i, n)
for i in d1:
for n in b:
for m in c:
_ = '{}{}{}'.format(i, n, m)
phone.append(_)
for i in d2:
for n in b:
for m in c:
_ = '{}{}{}'.format(i, n, m)
phone.append(_)
for i in d3:
for n in b:
for m in c:
_ = '{}{}{}'.format(i, n, m)
phone.append(_)
with open('/Users/w2n1ck/Desktop/info/phone.txt','a') as f:
for i in phone:
f.write(str(i) + 'n')
代码比较简单,看下就懂了,情况不全,可自行添加Payload。
生成手机号如下
0x02 字典爆破
登录界面如下
很奇葩的一点是由于之前存在爆破,故整改时小哥哥把“密码登录”流程去掉了,但是接口验证还能使用,只不过无法登录了。但是可以利用这个验证接口判断手机号是否存在
成功爆破出存在的手机号。
使用短信验证码登录,由于没有做验证码失效及防爆破机制,导致可爆破短信验证码。
成功爆破出短验证码,登录系统。
编写报告,又可以高高兴兴、理直气壮的找小哥哥谈理想了。
公众号回复:phone,获取特殊手机号字典
- Rafy 框架 - 为数据库生成注释
- CNN预测股票走势基于Tensorflow(思路+程序)
- 路径查找器AI
- android推荐使用dialogFrament而不是alertDialog
- 自定义圆角和园边的实现
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
- 应用潜在语义分析技术将文档进行3D可视化
- 利用神经网络算法的C#手写数字识别
- fastText、TextCNN、TextRNN…这套NLP文本分类深度学习方法库供你选择
- nfc开发
- N-CryptoAsset投资组合 | 使用PCA识别高度相关的加密货币(最近听说某币很疯狂哦!)
- 仿刮刮乐刮奖效果
- Spacebuilder在Mono上运行修改备忘
- maven配置详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- pytest文档54-Hooks函数terminal打印测试结果(pytest_report_teststatus)
- SAS-免费的描述性统计程序自动化创建
- Godot游戏开发实践之四:搬运Unity的Pluggable AI教程
- TypeScript 4.1 新特性:字符串模板类型,Vuex 终于有救了?
- 使用 Node.js 定制你的技术雷达:上篇
- 使用 Node.js 定制你的技术雷达:中篇
- 大点干!早点散----------Redis从入门到精通!!!
- Python入门摘要
- 这些 ECMAScript 模块知识,都是我需要知道的
- 微信小程序【事件绑定】入门一篇就搞定
- 一个后端狗的 Vue 笔记【入门级】
- 这才是现代C++单例模式简单又安全的实现
- Linux 学习笔记(1) 查看文件内容
- Python从入门到熟练(3):第一个程序
- 数学系的概率论和我们的不太一样。。。