• 手机浏览器直接唤起微信方案调研


    背景

    双十二前一天半夜正准备睡觉公司运营打电话过来说发现第三方公司有页面可以访问直接唤起微信。说完在公司的聊天工具里发来一段连接叫我调研一下能不能实现如果能实现双十二马上可以用起来。

    【梦梦家】双12倒计时啦!来就送10元券http://t.cn/RTqAzl8 领10元券戳 回N退订。没有自己的流量池 就落后挨打 人家在第一时间已经用了 就等你来找我了微信引流黑科技

    分析

    连接是个微博短链: http://t.cn/RTqAzl8。放浏览器里访问解析出完整的地址:
    http://r.jpwx.kim/wb/0e7d51958ac79557b5ecafc582ab62d0.html。打开调试器看了下页面中除了百度统计代码外核心代码如下:

    if(!/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && / baiduboxapp/i.test(navigator.userAgent)){
    window.location.replace('bdbox://utils?action=sendIntent&minver=7.4&params=%7B%22intent%22%3A%22weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dt59a2235a3662135bfb0e8f7edccc22c5%23wechat_redirect%23wechat_redirect%23Intent%3Bend%22%7D');
    }else{
    window.location.replace('weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect');
    }
    setTimeout(function(){document.getElementById("loading").style.display="none";},3000);



    代码的逻辑是判断不是苹果的设备并且访问 UA 中包含 baiduboxapp 字符修改页面连接为

    bdbox://utils?action=sendIntent&minver=7.4&params=%7B%22intent%22%3A%22weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dt59a2235a3662135bfb0e8f7edccc22c5%23wechat_redirect%23wechat_redirect%23Intent%3Bend%22%7D

    否则修改页面连接为

    weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect

    因为研究微信唤起先不看 baiduboxapp直接看微信唤起短链 weixin://dl/business谷歌搜索下发现是微信第三方公众号临时会话接口。这是一个内部的隐藏接口。链接中看到短链有个 ticket 参数多刷新几次页面ticket 参数会发生变化但是唤起页面的连接没有变。现在关键点成了怎么根据自己的页面生成合法的 ticket 参数。

    在想怎么生成 ticket 的时候自然会想到微信是如何解析这个参数的看看能不能从解析的逻辑中反推出生成的逻辑。

    找了客户端的同事反编译安卓微信客户端发现客户端里的逻辑很简单拿到短链后直接传递给微信服务器服务器就返回了 真实的地址

    https://open.weixin.qq.com/sns/webview?url=http%3A%2F%2Fun.m.jd.com%2Fcgi-bin%2Fapp%2Fappjmp%3Fto%3Dp.imtt.qq.com%252fh%253fd%253d7%2526b%253dtrade%2526type%253dsite%2526id%253d4061%2526u%253d%252568%252574%252574%252570%25253a%25252f%25252fvip.3.js.cn%252Fyyzs87.php%253Fticket%253D6148523063446f764c3364344c6d707764336775636d566b4c3364344c7a426c4e3251314d546b314f47466a4e7a6b314e5464694e57566a59575a6a4e546779595749324d6d51774c6d68306257772f644430784e54457a4d4451334d7a4d7a%2526from%253dshare%2526bid%253d13276%2526pid%253d1226104-1438221658%2526_wv%253d1027%2526sid%253dfavewofji%2526type%253d3%2526rnd%253d0.8738031948450953&appid=wxae3e8056daea8727&ts=1513047962&nonce=rjWsn6jYHv&sig=1c3d50cc9b948b2736398e1c1c66c32a&key=ad88abc27c4d295460ca3b05b7ed7a9a723ec81fbdb1e45386946920883a470f9b6e90cd75da4f05b8394a798f4b9446e673410a32c660224c93802cc47f427aa043de1c15cde5463ce4ad0ee5fecdd0&uin=MzY5MDEwNDExNQ%3D%3D&scene=0&version=26050839&pass_ticket=hKkz2FEs91MHFXEbW0vcmXwsfnKdDGqmvpQ1GG0cIYlqNFr5OcrssuH8DwD%2FSFmW

    后面就是微信内置 webview 浏览器访问这个地址解析出最后的落地页 http://uatv2.tcwx.i-mybest.com/qrimg/mmj2.html。

    解析路基全在服务端也没能分析出什么。看下解析出来的连接有什么可以分析的。从 https://open.weixin.qq.com/sns/webview***到 http://uatv2.tcwx.i-mybest.com/qrimg/mmj2.html中间调整了好几次。

    http://t.cn/RTqAzl8 -> 微博短链
    http://r.jpwx.kim/wb/0e7d51958ac79557b5ecafc582ab62d0.html -> 生成长连接
    weixin://dl/business/?ticket=*** -> 可以通过京东开放平台手 Q 唤起接口生成, http://jos.jd.com/api/list.htm?id=203
    https://open.weixin.qq.com/sns/webview?url=*** -> 微信的域名微信开发平台微信服务端生成
    http://un.m.jd.com/cgi-bin/app/appjmp?to=*** -> 京东的域名,QQ 域名跳转漏洞
    http://p.imtt.qq.com/h?u=*** -> QQ 的域名 QQ任意跳转漏洞15年纰漏实际上13年就已经存在的漏洞低风险至今没有修复。。
    http://vip.3.js.cn/yyzs87.php?*** -> 第三教室 老版本织梦 CMS 系统漏洞?
    http://wx.jpwx.red/wx/**** -> 无法访问开了域名WHOIS隐私服务看不到信息需要拿扫描器扫下看里面可能有什么不过到前面一步后面的已经不重要了
    http://uatv2.tcwx.i-mybest.com -> 广州麦优网络科技有限公司 漏洞 艾客广州壹豆网络科技有限公司微信社群营销实效解决方案提供商

    好了这样整个流程都通了。

    自己拼一个连接测试一下通过京东的连接跳转到百度:http://un.m.jd.com/cgi-bin/app/appjmp?to=p.imtt.qq.com%2Fh%3Fd%3D7%26b%3Dtrade%26type%3Dsite%26id%3D4061%26u%3Dhttp%3A%2F%2Fwww.baidu.com

    现在关键问题是京东开发平台生成 weixin://dl/business/?ticket= 连接的时候有个白名单机制尝试了几种连接都无法通过白名单验证。

    找了一个京东云服务平台的咨询得到的答复是唤起微信的接口现在被人恶意调用存在很大的安全风险京东内部已经建立了白名单和黑名单的机制打击恶意调用行为不接受也不会透露白名单。

    后续

    前面搜索相关内容的时候还查到 51万年历陌陌招商银行都有生成 weixin://dl/business/?ticket= 连接的服务。想到既然京东的接口是 手Q 给的那 手Q 自己必然也有接口权限并且应该会有其他类似京东的合作客户会有权限像前面几家公司。

    后面运营又给了几个连接解析出来的地址是 http://app.game.qq.com 域名下的确认了前面的猜想。

    尾声

    看前面的分析很明显看出这都是灰色产业的一部分。在和网友交流问题的过程中也收到好多 QQ邮件等信息出卖直接唤起微信的服务。报价从 700元到1000元保持一个连接唤起一个月时间。灰产果然暴力。

    作为一个五好公民我就不趟这个浑水啦。

    以上分析仅供学习交流请勿用于非法用途否则后果自负。

    转载注明出处:http://wuwb.me/

  • 相关阅读:
    Redis简介 安装 注册服务
    Supervisor Linux守护进程
    .Net5 控制台 读取配置文件+依赖注入
    Linux Gdip
    Net Core封装 踩坑
    Apollo 公共Namespace使用json
    Visual Studio 2019修改项目名
    【面向对象】--静态类与非静态类的区别
    win10设置默认中英文符号【程序员标配】
    MySQL 数据库访问驱动-版本问题
  • 原文地址:https://www.cnblogs.com/7qin/p/10111560.html
Copyright © 2020-2023  润新知