事情是这个样子的。
某天,朕正在某APP随机批阅私信的时候,突然看到了一条求助信息,大意是被该app上的一个人骗了钱,虽然金额都是几十几十的不是很大,但是这个人还骗了很多人,让我帮忙找一下他的信息。
于是乎,我就黑盒测试了一下这款app,果然发现了一个接口可以通过用户id来枚举绑定的手机号,用手机号枚举用户id也可以。
post该接口,如果用户ID参数zyid和手机号参数phone匹配,则返回参数data值为1,如果不匹配,则返回0。
用10w+的字典并且把我自己的手机号加入在字典三分之一处,测试2000条线程同时枚举,很快成功枚举到我自己的用户id对应的手机号。
没有问题,下面就是对应该骗子的常用登录地弄一个对应的手机号字典来枚举就可以了。
一时没什么好的针对归属地的手机号字典,索性就直接写一个。
最后成功找到骗子的手机号,然后社工一波得到骗子更多详细信息~~~~~
字典共两个程序,telfind和teldict。
第一个是用来生成归属地手机号的前七位,第二个程序是循环生成四位0-9数字并且补全手机号的程序。
为什么不写成一个程序,因为我在写第一个程序的时候,发现以后可以拓展更多功能,索性生成字典就单独再弄一个程序。
首先使用telfind生成对应的手机号前7位,本软件使用的是最新手机号归属地数据库,无需连接任何网络,支持模糊查询。
_ _ __ _ _
| |_ ___| |/ _(_)_ __ __| |
| __/ _ \ | |_| | '_ \ / _ |
| || __/ | _| | | | | (_| |
\__\___|_|_| |_|_| |_|\____|
V1.0 BY:zngeek
mail:[email protected]
-c string
查询的条件,列名=值
列说明:tel(电话),sf(省份),city(城市),yys(运营商{移动、联通、电信})
多个条件用逗号分隔,值可以前后加通配符*进行模糊查询
-o string
保存结果文件的路径,为空则不保存
-r string
返回的结果列名,多个列名用逗号分隔,空或者'all'表示返回全部列
例如:
telfind.exe -c "tel=150*,city=贵阳,yys=移动" -r tel -o res.txt
然后使用teldict根据前七位手机号的文件进行字典的生成,字典采用0-9四位枚举生成所有的手机号
_ _ _ _ _
| |_ ___| | __| (_) ___| |_
| __/ _ \ |/ _ | |/ __| __|
| || __/ | (_| | | (__| |_
\__\___|_|\____|_|\___|\__|
V1.0 BY:zngeek
mail:[email protected]
-o string
输出文件名
-s string
文件名
-t int
线程数量 (default 100)
例如:
teldict.exe -s res.txt -o 贵阳移动150.txt -t 2000
只编译了windows X64的程序,因为我懒~~~~
下载地址:
关注公众号,回复 telhacker 获取