【随笔】记录一次对网页关注公众号回复密码获取验证码的分析

前言

某网站如果要查看原文需要关注公众号,并获取密码才能全文观看。

心血来潮之下也想自己动手试一下破解公众号验证码引流,这里整理并记录一下。

详细过程

1. 点击打开弹窗

在这里插入图片描述

在这里插入图片描述

2. 打开浏览器调试工具

F12 打开浏览器调试工具,随意输入验证码,并点击确定。

在这里插入图片描述

3. 进行断点调试

在浏览器工具栏中,点击"源码" -> 在对应的网站上搜索 “验证码” 之类的关键字。
在这里插入图片描述
我这里成功找到对应的js 方法:

$(function() {
    function b(a) {
        "200" === a.code ? ($.cookie("sk-more-code", checkCode, {
            expires: 30
        }),
        d(),
        jc.close()) : jc.$content.find("#readMoreCore").after('<label id="readMoreCore-error" class="error" for="readMoreCore">解锁码错误,请重新输入</label>')
    }
    function c() {
        const a = $("#article-content-main")
          , b = a.height();
        a.css({
            height: b / 3,
            position: "relative",
            overflow: "hidden"
        })
    }
    function d() {
        $(".read-more-box").hide(),
        $("#article-content-main").css({
            height: "unset",
            position: "unset",
            overflow: "unset"
        })
    }
    const a = $.cookie("sk-more-code");
    isEmpty(a) ? c() : d(),
    $("#read-more").on("click", function() {
        const a = $("#read-more-wrap").html();
        jc = $.confirm({
            title: !1,
            columnClass: "jquery-confirm read-more-confirm",
            content: a,
            buttons: {
                ok: {
                    text: "确 定",
                    btnClass: "btn-warning",
                    keys: ["enter"],
                    action: function() {
                        const a = this.$content.find("#read-more-form");
                        return a.validate({
                            rules: {
                                readMoreCore: "required"
                            },
                            messages: {
                                readMoreCore: "请输入解锁码"
                            },
                            errorPlacement: function(a, b) {
                                a.insertAfter(b)
                            }
                        }),
                        a.valid() && (checkCode = this.$content.find("#readMoreCore").val(),
                        ajaxPost("/readMore/check/" + checkCode, null, b)),
                        !1
                    }
                },
                cancel: {
                    text: "取 消",
                    btnClass: "btn-success",
                    keys: ["esc"]
                }
            }
        })
    })
});

核心的代码逻辑是:

$(function() {
    function b(a) {
        "200" === a.code ? ($.cookie("sk-more-code", checkCode, {
            expires: 30
        }),
        d(),
        jc.close()) : jc.$content.find("#readMoreCore").after('<label id="readMoreCore-error" class="error" for="readMoreCore">解锁码错误,请重新输入</label>')
    }

对这里加上断点,
在这里插入图片描述

此时我们再进行验证码的输入,理论上会到这个逻辑是进行中断。

在这里插入图片描述

确实如我们所料,这里成功中断,并且还有了调试内容:
{
“code”: “2001”,
“message”: “请求失败”,
“result”: null
}

再来回看刚才的方法:

 "200" === a.code ? ($.cookie("sk-more-code")

也就是说我们只需要让a.code === 200 让这个表达式成功执行即可。

4. 修改本地值

在这里插入图片描述
我们这里手动将 a.code 的值从 2001 改为 200.

然后再放开调试。
在这里插入图片描述

在这里插入图片描述

此时,页面已经可以正常访问。并且刷新也不会再出现验证码,问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值