破解 OpenWrite 微信导流

破解 OpenWrite 微信导流

xiaolu
2022-03-13 / 0 评论 / 54 阅读 / 正在检测是否收录...

很多网站为了导流,使用了 openwrite 这个工具,想要阅读全部的文章就必须关注公众号,然后回复关键字,输入验证码。比如 这个网站 上是关于 opencv 的中文文档,即使关注了公众号,关闭标签页再打开仍要操作一遍,很是麻烦。因此经过一番研究,找到了解决方案。

介绍原理

向公众号回复关键字后,微信会推送消息到站点服务器,站点服务器会调用 openwrite 的接口获取验证码,然后把验证码返回给手机微信。

我们看到验证码,把它输入到网页上,点击提交时网页会调用 openwrite 的验证码校验接口,校验成功就会继续加载其他段落,此时全文就呈现出来了。校验失败就会给你一个提示。

关键就是跳过 关注-回复-输入 这些步骤,直接调用 openwrite 获取验证码的接口,然后自动输入到文本框,然后触发提交。全程看不到阅读全文按钮和弹出的模态框,体验十分美好!

代码实现

Tips:最好的方式就是把这段代码加到油猴里面,这样就可以自动化执行了。

🍓 首先判断站点是否安装 jquery 和 openwrite 插件,然后再去判断阅读全文是否已经被处理过。因为处理过后是没有阅读全文按钮的,当切换到其他页面时不做判空控制台会报错。

🍓 然后把站点在 openwrite 注册的 blogId 和 openwrite API 接口 url 拼接一下,通过 jquery 发送 ajax 请求,返回的数据是一段结构很简单的 html,用 jquery 简单处理一下,拿到验证码(code)。

🍓 用 jquery 把验证码输入到文本框内,然后触发【提交】按钮,模态框就消失了。

(function () {
  if (!btw || !$) {
    alert("找不到btw或jquery");
    return;
  }

  let hasMoreBtn = $("#read-more-btn").length;
  if (!hasMoreBtn) {
    console.log("尽情阅读叭,没有讨厌的验证码啦!");
    return;
  }

  let blogId = btw.options.blogId;
  const baseUrl = "https://readmore.openwrite.cn/code/generate?blogId=";
  const openwriteUrl = `${baseUrl}${blogId}`;

  $.get(openwriteUrl, (data) => {
    codeHtml = $.parseHTML(data)[18];
    code = codeHtml.innerText;
    $("#read-more-btn").click();
    setTimeout(() => {
      $("#btw-modal-input").val(code);
      $("#btw-submit-btn").click();
    }, 1000);
  });
})();

油猴脚本注释如下,scikitlearn 这个站点也用了 openwrite,可以一并加进来。

// ==UserScript==
// @name         OpenWrite 破解
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Henrenx
// @match        https://www.scikitlearn.com.cn/*
// @match        http://www.woshicver.com/*
// @icon         https://www.google.com/s2/favicons?domain=scikitlearn.com.cn
// @grant        none
// ==/UserScript==

总结思考

其实就是抓了 openwrite 验证码获取接口的漏洞,如果调用这个接口还需要再加一些其他字段,比如在站点注册时分发一个 privateKey,那么这个接口就不是任何人都能调用的了。

0

评论 (0)

取消