QQ 转发领取红包卡片骗局逆向
QQ 转发领取红包卡片骗局逆向
开朗的火山河123

心怀梦想,走向远方

  • 累计撰写 19 篇文章
  • 累计收到 7 条评论

QQ 转发领取红包卡片骗局逆向

2026-2-16 / 0 评论 / 27 阅读

源贴发到linuxdo了,博客重发一遍

QQ转发领取红包卡片逆向 - 开发调优 - LINUX DO

 

 

最近在 QQ 群看见一个转发领红包的卡片,好奇对这个逆了一下…

入口分析

直接访问:

 
https://cdn.nfa.qq.com/production/wp-content/uploads/2021/06/7a20f33a88d46c960379ad.html?signature=LWDbmFpgd2eb532548fe8c855ee673a5d21ffb11c4a8570b9d3eb4d19a&red_packet_id=94decdd4ee71476ea088cb9feSK6jIbSw&yb_use_wechat_download_page=1&appid=vcr38%25cch434&_from=&_wv=131073&_wwv=646&_fv=0&_bid=5103

默认会跳转至 QQ 官网下载页

最初怀疑是屏幕尺寸判断,调整分辨率后仍然跳转

随后修改 UA 为 QQ 内置浏览器:

 
Mozilla/5.0 (Linux; Android 16; A059 Build/BQ2A.250721.001-BP2A.250605.031.A3; wv)
AppleWebKit/537.36 (KHTML, like Gecko)
Version/4.0 Chrome/121.0.6167.71 MQQBrowser/6.2 TBS/047925
Mobile Safari/537.36 V1_AND_SQ_9.2.50_12670_YYB_D
QQ/9.2.50.32575 NetType/WIFI WebP/0.3.0
AppId/537330095 Pixel/1080 StatusBarHeight/126
SimpleUISwitch/0 QQTheme/2058862 StudyMode/0
CurrentMode/0 CurrentFontScale/1.0 GlobalDensityScale/1.0285715
AllowLandscape/false InMagicWin/0

成功进入页面

 


远程 JS 分析

页面加载了如下 JS:

 
https://oss.oss-aliyuncss.com/q/x.js

该 JS 实际为远程加载器,用于拉取远程 HTML 和替换当前页面内容

最终 HTML 指向:

 
2025lxxxx.oss-cn-beijing.aliyuncs.com/index.html

结构上看像批量生产的模板式页面

 


UA 限制逻辑

代码中存在 UA 判断:

 
function isMobileQQ() {
  var ua = navigator.userAgent.toLowerCase();
  var isMobile = /iphone|ipod|ipad|android|harmonyos/i.test(ua);
  var isQQBrowser = /qq/i.test(ua);
  var isIOSQQ = /iphone|ipod|ipad/i.test(ua) && /qq/i.test(ua);
  var isAndroidQQ = /android/i.test(ua) && /qq/i.test(ua);
  var isHarmonyOSQQ = /harmonyos/i.test(ua) && /qq/i.test(ua);
  return isMobile && isQQBrowser && (isIOSQQ || isAndroidQQ || isHarmonyOSQQ);
}

if (isMobileQQ()) {
} else {
  top.location.href="https://im.qq.com/mobileqq/";
}

作用为限定在 QQ 内置浏览器打开

推测可能是为了防止逆向此网站

不过实现方式较为粗糙,仅基于 UA 字符串判断,很容易破


禁止侧滑返回

调用:

 
mqq.ui.setWebViewBehavior({ swipeBack:0 })

用于禁止 QQ 内置浏览器侧滑退出页面


微信环境限制

存在如下代码:

 
function sleep(ms){
  var t = new Date().getTime();
  while (new Date().getTime() < t + ms) {}
}

function handler() {
  var origGet = Object.getOwnPropertyDescriptor(Element.prototype, "outerHTML").get;
  Object.defineProperty(document.documentElement, "outerHTML", {
    get: function () {
      WeixinJSBridge.invoke("closeWindow", {}, function(){});
      sleep(0x1f4); // 500ms busy wait
      return origGet.bind(this)();
    }
  })
}
handler()

作用为:劫持 outerHTML,若在微信环境打开,调用 WeixinJSBridge.closeWindow 强制关闭页面


第三方统计

页面还加载:

 
https://hm.baidu.com/hm.js?f43e74c9eaf28f9f7016fdb2cf0e3767

 
<script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script>

<script>LA.init({id:"3KdthfN7YoDEWf4L",ck:"3KdthfN7YoDEWf4L"})</script>

使用百度和 51la 统计做流量监控


7. 核心逻辑脚本

主逻辑文件:

 
<script src="//2025lxxxx.oss-cn-beijing.aliyuncs.com/js/sm.2026.js?" defer></script>

sm.2026.js 为核心业务逻辑脚本,包含完整页面逻辑。

仅供研究的反混淆版本:

 
考虑到这是公开文章,先删除了,如有需要请联系我

关键逻辑

(1)分享次数计算

反混淆后第 1384 行本地计算分享次数

 


(2)转发文案

反混淆后在第 1144 行定义了分享内容文案


(3)完成转发后跳转

当转发次数达标后页面跳转至外链

QQ 转发领取红包卡片骗局逆向

 

 


最终落地流程

跳转外链后要求绑定手机号

QQ 转发领取红包卡片骗局逆向

 

在点击获取验证码后跳转至运营商套餐订购页面

 

流程闭环如下:

 
红包诱导 → 强制转发 → 本地计数达标
→ 跳转手机号绑定页面
→ 跳转运营商套餐订阅页面

总结

该站点整体逻辑为:

  • 利用 “红包” 噱头诱导传播
  • 最终引导用户进入运营商套餐订阅页面
  • 通过套餐订阅获取返佣

用阿里云的存储真的不怕被抓吗…


扫描二维码,在手机上阅读

评论一下?

OωO
取消