1. 程式人生 > >手機瀏覽器直接喚起微信方案調研

手機瀏覽器直接喚起微信方案調研

背景

雙十二前一天半夜,正準備睡覺,公司運營打電話過來,說發現第三方公司有頁面可以訪問直接喚起微信。說完在公司的聊天工具裡發來一段連線,叫我調研一下能不能實現,如果能實現,雙十二馬上可以用起來。

【夢夢家】雙12倒計時啦!來就送10元券,http://t.cn/RTqAzl8 領10元券戳 回N退訂。沒有自己的流量池 就落後捱打 人家在第一時間已經用了 就等你來找我了,微信引流黑科技

分析

連線是個微博短鏈: http://t.cn/RTqAzl8。放瀏覽器裡訪問,解析出完整的地址: http://r.jpwx.kim/wb/0e7d51958ac79557b5ecafc582ab62d0.html。開啟偵錯程式看了下,頁面中除了百度統計程式碼外,核心程式碼如下:

  1. if(!/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && / baiduboxapp/i.test(navigator.userAgent)){

  2. window.location.replace('bdbox://utils?action=sendIntent&minver=7.4¶ms=%7B%22intent%22%3A%22weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dt59a2235a3662135bfb0e8f7edccc22c5%23wechat_redirect%23wechat_redirect%23Intent%3Bend%22%7D');

  3. }else{

  4. window.location.replace('weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect');

  5. }

  6. 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元,保持一個連線喚起一個月時間。灰產果然暴力。

作為一個五好公民,我就不趟這個渾水啦。

以上分析僅供學習交流,請勿用於非法用途,否則後果自負。

有問題可以登入vip.wxticket.com 找我交流