微信作为流量爸爸,如果能从微信引流到自己的平台,想想就开心啊!!! 微信引流的一种方式:通过手机浏览器打开某一网址,然后启动微信,并跳转到微信页面。 下面分享下调研方案:
链接是个微博短链: http://t.cn/RTqAzl8。 放浏览器里访问,解析出完整的地址:http://r.jpwx.kim/wb/0e7d51958ac79557b5ecafc582ab62d0.html。 打开Web调试器看了下,页面中除了百度统计代码外,核心代码如下:
代码语言:javascript复制if (!/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && / baiduboxapp/i.test(navigator.userAgent)) {
window.location.replace('bdbox://utils?action=sendIntent&minver=7.4¶ms={"intent":"weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect#Intent;end"}');
} else {
window.location.replace('weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect');
}
setTimeout(function() {
document.getElementById("loading").style.display = "none";
},3000);
以上代码的逻辑是:判断不是苹果的设备,并且访问 UA 中包含 baiduboxapp 字符,修改页面连接为:
代码语言:javascript复制bdbox://utils?action=sendIntent&minver=7.4¶ms={"intent":"weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect#Intent;end"}
否则修改页面连接为:
代码语言:javascript复制weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect
因为主要是研究微信唤起,先不看 baiduboxapp,直接看微信唤起短链 weixin://dl/business
,谷歌搜索下发现是微信第三方公众号临时会话接口。这是一个内部的隐藏接口。链接中看到短链有个 ticket 参数,多刷新几次页面,ticket 参数会发生变化,但是唤起页面的连接没有变。
现在关键点成了怎么根据自己的页面生成合法的 ticket 参数。
在想怎么生成 ticket 的时候,自然会想到微信是如何解析这个参数的,看看能不能从解析的逻辑中反推出生成的逻辑。 找了客户端的同事,反编译安卓微信客户端,发现客户端里的逻辑很简单,拿到短链后,直接传递给微信服务器,服务器就返回了 真实的访问地址。
代码语言:javascript复制https://open.weixin.qq.com/sns/webview?url=http://un.m.jd.com/cgi-bin/app/appjmp?to=p.imtt.qq.com%2fh%3fd%3d7%26b%3dtrade%26type%3dsite%26id%3d4061%26u%3d%2568%2574%2574%2570%253a%252f%252fvip.3.js.cn%2Fyyzs87.php%3Fticket%3D6148523063446f764c3364344c6d707764336775636d566b4c3364344c7a426c4e3251314d546b314f47466a4e7a6b314e5464694e57566a59575a6a4e546779595749324d6d51774c6d68306257772f644430784e54457a4d4451334d7a4d7a%26from%3dshare%26bid%3d13276%26pid%3d1226104-1438221658%26_wv%3d1027%26sid%3dfavewofji%26type%3d3%26rnd%3d0.8738031948450953&appid=wxae3e8056daea8727&ts=1513047962&nonce=rjWsn6jYHv&sig=1c3d50cc9b948b2736398e1c1c66c32a&key=ad88abc27c4d295460ca3b05b7ed7a9a723ec81fbdb1e45386946920883a470f9b6e90cd75da4f05b8394a798f4b9446e673410a32c660224c93802cc47f427aa043de1c15cde5463ce4ad0ee5fecdd0&uin=MzY5MDEwNDExNQ==&scene=0&version=26050839&pass_ticket=hKkz2FEs91MHFXEbW0vcmXwsfnKdDGqmvpQ1GG0cIYlqNFr5OcrssuH8DwD/SFmW
后面就是微信内置 webview 浏览器访问这个地址,解析出最后的落地页 http://uatv2.tcwx.i-mybest.com/qrimg/mmj2.html
ticket解析访问地址全在服务端,分析不出来什么东西。
只能从微信服务器返回的链接看下有没有什么有用的信息。
从 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/h?d=7&b=trade&type=site&id=4061&u=http://www.baidu.com
现在关键问题是京东开发平台生成 weixin://dl/business/?ticket= 连接的时候有个白名单机制,尝试了几种连接,都无法通过白名单验证。找了一个京东云服务平台的咨询,得到的答复是唤起微信的接口,现在被人恶意调用,存在很大的安全风险,京东内部已经建立了白名单和黑名单的机制,打击恶意调用行为,不接受也不会透露白名单。
后续
前面搜索相关内容的时候还查到 51万年历,陌陌,招商银行都有生成 weixin://dl/business/?ticket= 连接的服务。想到既然京东的接口是 手Q 给的,那 手Q 自己必然也有接口权限,并且应该会有其他类似京东的合作客户会有权限,像前面几家公司。后面运营又给了几个连接,解析出来的地址是 http://app.game.qq.com 域名下的,确认了前面的猜想。