如何选一个心仪的腾讯大王卡手机号

本文作者:IMWeb yisbug 原文出处:IMWeb社区 未经同意,禁止转载

最近淘了一个支持4G的iPad Pro,考虑买一个什么类型的流量卡比较划算。对比了一下,发现还是用腾讯系的应用比较多,例如王者荣耀、腾讯视频、微信QQ等,那就选个腾讯的大王卡吧。打开微信,王卡助手,进入申请王卡的页面,发现可以自选号码,那就必须要选一个自己喜欢的号码了 。

个人偏爱0这个数字,虚无没有意义又简单好记,于是使用页面提供的搜索功能,搜索000,发现什么也没有。再尝试搜索186,也什么都没有。原来这个系统不支持搜索3位数字。好吧,继续搜索00,出来了一批没什么意义的号码,花了些时间一直点击“换一批”按钮,也没找到什么中意的号码。

突然发现,这个页面点击换一批的速度还挺快的嘛,打开chrome控制台,看了下请求。原来是有一个jsonp的请求一次性拉回来100个号码,然后随机换着显示,这不耍猴呢。我倒想看看联通的号码库到底有多少个号码可以让我选,随手写了段脚本,打开控制台执行。

var nums = []; // 存储所有的号码
var isStop = false; // 是否停止采集
function load(url, callback) {
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) { // 4 = "loaded"
            if (xmlhttp.status == 200) { // 200 = OK
                callback(xmlhttp.responseText);
            } else {
                callback('');
            }
        }
    };
    xmlhttp.open('GET', url, true);
    xmlhttp.send(null);
}
var run = () => {
    load(`https://m.10010.com/NumApp/NumberCenter/qryNum?callback=jsonp_queryMoreNums&provinceCode=51&cityCode=540&monthFeeLimit=0&groupKey=21236872&searchCategory=3&net=01&amounts=200&codeTypeCode=&searchValue=&qryType=02&goodsNet=4&_=${new Date().getTime()}`, (data) => {
        var arr = data.match(/\d{11}/g);
        if (arr && arr.length) {
            arr.forEach((item) => {
                // 去重
                if (nums.indexOf(item) === -1) {
                    nums.push(item);
                }
            });
        }
        if (nums.length < 200000 || !isStop) {
            setTimeout(() => run, 100)
        }
    });
};
run();

跑了半天,广东深圳号码库的数量大约19000个左右,再继续跑也没有增加多少。个人不喜欢带4的号码,简单剔除后,只有不到1000个号码。

nums.sort().filter((item) => item.indexOf('4') === -1).join('","')

这1000个号码里也没有选到比较喜欢的。随便选了一个号码,修改dom,把号码换成自己想要的,居然提示号码已经被占用。

原来选择号码时,还会发出一个POST请求,判断号码是否被占用。

OK,那我直接选定号段,轮询一下有哪些号码可用,不就解决问题了。打开ip138.com,找到广东深圳的号码段,选择18603000000-18603009999这个区域,再写了段脚本:

function post(num) {
    return new Promise((resolve, reject) => {
        const xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) { // 4 = "loaded"
                if (xmlhttp.status == 200) { // 200 = OK
                    resolve(xmlhttp.responseText);
                } else {
                    resolve('');
                }
            }
        };
        xmlhttp.open('POST', "https://m.10010.com/king/kingNumBuy/occupy", true);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlhttp.send('provinceCode=51&cityCode=540&numID=' + num + '&goodsId=511610241535');
    })
}
for (var i = 0; i < 9999; i++) {
    var str = String(i);
    if (str.length < 4) {
        str = new Array(5 - str.length).join('0') + str
    }
    var res = await post('1860300' + str)
    if (res === '"SUCCESS"') {
        console.log(res, i);
    }
}

当然,这只是初步的脚本,为了加快速度,可以多打开几个页面,并发请求。最终拿到一部分没有被占用的号码,如图:

最终,在没有被使用的号码里挑选了一个还算满意的号码。

当然,这个行为其实相当于作弊,而服务提供方也没有做好相应的防范措施,导致我能够用较低的成本就可以拉取号码信息。如果对应的接口做了IP频率限制,那这种简单的轮询方式的成本就会比较高了,可能需要着堆大量的代理服务器来跑接口。

这让我想起几年前的一个case,当时联通宽带的账号和默认密码是固定格式的,带宽只有2M和4M可选。当时新换了个房子,宽带还没有开通,于是简单写了个自动拨号的程序,跑出来几千个宽带账号密码,可以随意免费使用,并且还可以选4M的账号使用。 这个也属于运营商的漏洞,频率限制+mac绑定即可解决,但可惜他们并没有这么多。

OK,写了这么多,虽然技术含量不高,但确实有效快捷。 最后郑重声明,不鼓励大家这么做哈,所造成的一切后果和本人无关。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

Google发现Windows 8.1 0day漏洞并公布漏洞验证程序(PoC)

Google安全研究人员发现了一枚Windows 8.1权限提升漏洞,攻击者可以借此漏洞修改系统内容甚至完全控制受害者计算机。目前Google已经公布了漏洞验证...

2097
来自专栏IT大咖说

做一个不背锅的运维

内容来源:作者:田逸(sery),来自:http://blog.51cto.com/sery/2162642

1784
来自专栏灯塔大数据

荐读|爬虫还在用Python?我与Node.js不得不说的故事

深夜闲来无事,默默的打开github,在搜索框中填入了”Stars:>1”,本想着依旧可以在第一页看到Spark的身影,结果第一个映入眼帘的是这个: ? 快速...

1.4K5
来自专栏Android 开发者

正式发布 Android 架构组件 1.0 稳定版

1332
来自专栏java一日一条

这样的开源应用你相信它吗?

任何读过马修•加勒特作品的人都知道很多专门用来销售的软件是不靠谱的。一些Linux倡导者宣称开放自由而且免费的软件比封闭的专门用来谋利的软件更安全,然而这里有一...

962
来自专栏编程

常见测试术语解析

BAT,Build Acceptance Testing,工作版本可接受测试。新工作版本正式测试前进行的一项快速测试过程,目的是保证软件的基本功能和内容正确完整...

2297
来自专栏FreeBuf

独家: iOS是如何收集用户的地理信息的

从央视的新闻里我们了解到这个故事应该从三年前讲起: 2011年两名英国的工程师发现苹果手机暗藏的一个文件可以记录苹果手机用户曾经去过的地理位置,并通过隐藏文件...

21910
来自专栏FreeBuf

物联网安全研究之二:IoT系统攻击面定义分析

在前文中,我们了解了IoT技术的基本架构,本文我将来说说IoT安全,在此过程中,我们会尝试定义一种新方法来理解IoT安全,同时也会创建一个结构化流程来方便认知I...

3829
来自专栏FreeBuf

新一代子域名爆破工具brutedns

一直相信不要重复造轮子这句话,但是如果可以造出来更好的轮子,我认为那就应该勇敢的去造。总结一下工具特点:人无我有,人有我优。 废话不多说,先说特性。 特性: 1...

4426
来自专栏云计算D1net

不再飘在云中 揭秘云存储与云备份的不同

随着云计算的深入应用,云备份和云存储的应用也逐渐被企业和个人所熟悉,那么问题来了,云备份和云存储有什么区别吗? 大家之所以对两者存在疑虑,是因为大多数的时候我们...

4987

扫码关注云+社区

领取腾讯云代金券