V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
novobo
V2EX  ›  信息安全

收到一个疑似盗取 QQ skey 的链接,请各位大佬能帮忙深入分析下。

  •  
  •   novobo · 217 天前 · 3050 次点击
    这是一个创建于 217 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天突然收到一个好友 qq 消息,让我点击投票,这链接看着就很诡异:www.0bf4.fun/zJUk (谨慎打开)。于我就在手机浏览器中单独打开发现跳转了好几次,最终跳转至了 qq.com/404 。今天用电脑打开看了下网页源代码,发现跳转至 https://file.shenlanbao.com/2024/05/11/1238938783697752064.png (谨慎打开),用别人深蓝保的网站上传了一段一个 js 文件,这日期还挺新鲜的,代码如下:

    <script>
    function FbQkvAAuUccjWjsZsV(FbQkvAAuUccjWjsZsV){document.write((unescape(FbQkvAAuUccjWjsZsV)));};FbQkvAAuUccjWjsZsV("0D 0A 3C 21 44 4F 此处省略若干 0A 0D 0A".replace(/ /g,'%'));</script>
    

    我用 python 解码了下,其中一段如下,不过本人计算机知识有限,不懂它在干嘛,只看到一堆跳转嵌套,大佬们能给分析下吗

         var ua = navigator.userAgent.toString();
    
         var urlParams = new URLSearchParams(window.location.search);
         var t = urlParams.get('t');
    
         if(t)
         {
             var ua = navigator.userAgent.toString();
             if (ua.indexOf("QQ") !== -1) {
                        urls = decode(t);
    
    
                      document.getElementById("reportFrame").src=urls+'#?,WorldPro?9xx1?url=https://mp.weixinbridge.com/mp/wapredirect?url=http%253A%252F%252Fvk.vvzan.com#rdtype2=4&rdtype3=3002529&rdurl=http://ptlogin2.qq.com/jump?u1=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://cf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://lol.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://dnf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://htdata2.qq.com:80/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://htdata2.qq.com:80/cgi-bin/http'+generateRandomString(20);
    
    
    
                 }else{
    
                   window.parent.location.href='http://qq.com/404';
                 }
    
         }else{
    
    
                window.parent.location.href='http://qq.com/404';
    
         }
    
    第 1 条附言  ·  217 天前

    看了2楼GPT的解释,原来还限定浏览器 UA ,又仔细看了 javascript 代码,原来还获取了 url 的参数。

         var urlParams = new URLSearchParams(window.location.search);
         var t = urlParams.get('t');
    

    解码后是 'http://w.mmf889q2z06.top',组合一下网址是 http://w.mmf889q2z06.top#?,WorldPro?9xx1?url=https://mp.weixinbridge.com/mp/wapredirect?url=http%253A%252F%252Fvk.vvzan.com#rdtype2=4&rdtype3=3002529&rdurl=http://ptlogin2.qq.com/jump?u1=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://cf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://lol.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://dnf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://htdata2.qq.com:80/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://htdata2.qq.com:80/cgi-bin/http 后面 generateRandomString(20) 生成长度20的随机字符串貌似不用加也没影响。进去之后是个投票网站,还要求登录是 qq 验证,还是在他的网站输入账号密码进行验证。

    我是不明白,既然网站内部直接要了密码,这网站后面加这么多 qq 登录跳转的 url 为参数是做什么,为啥还限定浏览器的 UA

    16 条回复    2024-05-20 16:58:46 +08:00
    winjeb
        1
    winjeb  
       217 天前
    这种问题问 GPT 会不会更好一点?
    winjeb
        2
    winjeb  
       217 天前
    这个代码包含一些恶意行为,意在诱导用户点击链接并执行多个重定向,可能最终导致恶意软件的安装或窃取用户信息。以下是对该代码的详细分析:

    ### 源代码分析

    ```javascript
    <script>
    function FbQkvAAuUccjWjsZsV(FbQkvAAuUccjWjsZsV){document.write((unescape(FbQkvAAuUccjWjsZsV)));};
    FbQkvAAuUccjWjsZsV("0D 0A 3C 21 44 4F 此处省略若干 0A 0D 0A".replace(/ /g,'%'));
    </script>
    ```

    这个脚本的作用是将一段被编码的字符串解码并写入页面。`unescape` 函数将 `FbQkvAAuUccjWjsZsV` 变量中的十六进制字符串转换为可读的文本,然后 `document.write` 将其写入页面。

    ### 解码后的 JavaScript 代码

    ```javascript
    var ua = navigator.userAgent.toString();

    var urlParams = new URLSearchParams(window.location.search);
    var t = urlParams.get('t');

    if(t) {
    var ua = navigator.userAgent.toString();
    if (ua.indexOf("QQ") !== -1) {
    urls = decode(t);
    document.getElementById("reportFrame").src = urls + '#?,WorldPro?9xx1?...' + generateRandomString(20);
    } else {
    window.parent.location.href = 'http://qq.com/404';
    }
    } else {
    window.parent.location.href = 'http://qq.com/404';
    }
    ```

    ### 具体分析

    1. **User Agent 检测**:
    ```javascript
    var ua = navigator.userAgent.toString();
    ```
    这段代码获取用户代理字符串,用于检测访问者使用的浏览器或应用。

    2. **URL 参数解析**:
    ```javascript
    var urlParams = new URLSearchParams(window.location.search);
    var t = urlParams.get('t');
    ```
    从 URL 中获取参数 `t` 的值。

    3. **条件判断和重定向**:
    ```javascript
    if(t) {
    if (ua.indexOf("QQ") !== -1) {
    urls = decode(t);
    document.getElementById("reportFrame").src = urls + '#?,WorldPro?9xx1?...' + generateRandomString(20);
    } else {
    window.parent.location.href = 'http://qq.com/404';
    }
    } else {
    window.parent.location.href = 'http://qq.com/404';
    }
    ```
    - 如果 URL 参数 `t` 存在,并且用户代理字符串中包含 `"QQ"`,则调用 `decode` 函数对 `t` 进行解码,生成 URL ,并将其赋给一个 iframe 的 `src` 属性。
    - 如果不满足条件,则重定向到 `http://qq.com/404`。

    ### 主要功能

    - **用户代理检测**: 代码专门检查是否在 QQ 浏览器或 QQ 应用中运行,表明攻击者可能针对 QQ 用户进行钓鱼或恶意行为。
    - **多重重定向**: 使用 `decode(t)` 解码参数 `t`,生成一个可能包含恶意链接的 URL 。这个 URL 通过 iframe 加载,可能执行进一步的重定向或载入恶意内容。
    - **避免检测**: 如果不符合特定条件(例如不是在 QQ 中打开),则重定向到一个无害的 404 页面,避免引起怀疑。

    ### 建议

    1. **避免点击可疑链接**: 不要点击或访问任何来历不明的链接。
    2. **安全检查**: 在不确定链接安全性的情况下,可以使用安全工具或沙盒环境进行检查。
    3. **提升安全意识**: 提高对网络钓鱼和恶意链接的警惕性,避免因好奇心或信任而造成安全风险。
    4. **报告**: 如发现可疑链接,可向相关平台或安全部门报告,以便采取措施防范。

    这个代码片段表明其目的可能是通过诱导点击,实施恶意重定向,获取用户敏感信息或进行其他恶意行为。务必谨慎处理此类情况,确保个人信息和设备的安全。
    Kinnice
        3
    Kinnice  
       217 天前 via Android
    @winjeb 没重点,重点是如何盗取信息,攻击链条是什么样的. 你这个就是纯翻译代码
    yuaotian
        4
    yuaotian  
       217 天前   ❤️ 3
    搞定了,就是钓鱼页面
    最后会跳转到一个
    http://w.mmf889q2z06.top
    完整 URL: http://w.mmf889q2z06.top#?,WorldPro?9xx1?url=https://mp.weixinbridge.com/mp/wapredirect?url=http%253A%252F%252Fvk.vvzan.com#rdtype2=4&rdtype3=3002529&rdurl=http://ptlogin2.qq.com/jump?u1=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://cf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://lol.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://dnf.qq.com/comm-htdocs/milo_mobile/login.html?s_url=http://htdata2.qq.com:80/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://grouproam.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=http://ptlogin2.fm.qq.com/jump?u1=http://ptlogin2.tenpay.com/jump?skey=@7bmBHm0XLp&u1=http://htdata2.qq.com:80/cgi-bin/http2KIZqt2CBCayOge4H23S

    它搞这些大概率是为了骗过 QQ 内置浏览器的安全提醒,

    然后也抓到包了,登录界面一眼假。。。

    https://w.mmf889q2z06.top/qq/login
    host: w.mmf889q2z06.top
    content-length: 41
    sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"
    x-csrf-token: y7iPAqFKPs1DlRcsT3VyFknCyVTq9vYfB3NQcOoG
    sec-ch-ua-mobile: ?0
    user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
    content-type: application/x-www-form-urlencoded; charset=UTF-8
    accept: */*
    x-requested-with: XMLHttpRequest
    sec-ch-ua-platform: "Windows"
    origin: https://w.mmf889q2z06.top
    sec-fetch-site: same-origin
    sec-fetch-mode: cors
    sec-fetch-dest: empty
    referer: https://w.mmf889q2z06.top/qq/login?id=8
    accept-encoding: gzip, deflate, br, zstd
    accept-language: en,zh-CN;q=0.9,zh;q=0.8
    cookie: laravel_session=eyJpdiI6ImRCWVwvWEJicUVKbkpLUTlDK25seFd3PT0iLCJ2YWx1ZSI6Im5INzBFNzVLVEk4eFRQZWw4bzFnbTZYWStyOTlvYks0K3Q2RERKYnN0XC92R0FsOUw1bk1FTmhCV1lFbEhIV3JOIiwibWFjIjoiZjQ1YTE2YjNiY2FmZjMxOTU5YjFkODMxZDUyYzFjNzczZDhmZDRkOTFmZmZlYzQ5NTE2ZGRmNjAyNzlhYWQ3YyJ9
    priority: u=1, i

    id=8&username=111112222&password=tt&area=

    返回值
    {
    "code": 200,
    "msg": "提交成功",
    "data": "111112222"
    }


    下面是一段代码,大家有兴趣就写一个多线程 POST 刷爆对方把

    curl -X POST 'https://w.mmf889q2z06.top/qq/login' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"' -H 'x-csrf-token: y7iPAqFKPs1DlRcsT3VyFknCyVTq9vYfB3NQcOoG' -H 'sec-ch-ua-mobile: ?0' -H 'content-type: application/x-www-form-urlencoded; charset=UTF-8' -H 'x-requested-with: XMLHttpRequest' -H 'sec-ch-ua-platform: "Windows"' -H 'origin: https://w.mmf889q2z06.top' -H 'sec-fetch-site: same-origin' -H 'sec-fetch-mode: cors' -H 'sec-fetch-dest: empty' -H 'referer: https://w.mmf889q2z06.top/qq/login?id=8' -H 'accept-language: en,zh-CN;q=0.9,zh;q=0.8' -H 'priority: u=1, i' -H 'Cookie: laravel_session=eyJpdiI6ImRCWVwvWEJicUVKbkpLUTlDK25seFd3PT0iLCJ2YWx1ZSI6Im5INzBFNzVLVEk4eFRQZWw4bzFnbTZYWStyOTlvYks0K3Q2RERKYnN0XC92R0FsOUw1bk1FTmhCV1lFbEhIV3JOIiwibWFjIjoiZjQ1YTE2YjNiY2FmZjMxOTU5YjFkODMxZDUyYzFjNzczZDhmZDRkOTFmZmZlYzQ5NTE2ZGRmNjAyNzlhYWQ3YyJ9' --data-urlencode 'id=8' --data-urlencode 'username=111112222' --data-urlencode 'password=tt' --data-urlencode 'area='
    MossFox
        5
    MossFox  
       217 天前
    @yuaotian #4
    牛逼,搜了一圈还在想是不是在利用 QQ 内置浏览器的登陆验证漏洞,结果就是为了绕过拦截重定向到典型得不能再典型的钓鱼网页……
    yuaotian
        6
    yuaotian  
       217 天前
    @MossFox 是啊,绕了一个好大的圈子,结果就这,白高兴了,还真以为是利用了 qq 某个网站漏洞搞 skey
    novobo
        7
    novobo  
    OP
       217 天前
    @yuaotian 原来如此,搞这么复杂就是骗过 QQ 内置浏览器的安全提醒🤦‍♂️
    novobo
        8
    novobo  
    OP
       217 天前
    @MossFox 平时手机只用内置的 safari 偶尔用 firefox ,手机地区切换到了台湾,早已经忘记国产浏览器拿手的安全拦截了。我还是觉得这个人没必要只限定 qq 类的浏览器。昨天用 safari 打开的时候直接跳转到了 qq 网站我还担心是不是有什么跨站攻击窃取啥的,(不太懂,见笑了,嘿嘿嘿。
    另外翻了深蓝保的网站,没有任何登录注册的互动板块,好奇怎么传的文件。
    miyuki
        9
    miyuki  
       217 天前
    skey 现在应该很难很难偷到了
    drymonfidelia
        10
    drymonfidelia  
       216 天前   ❤️ 3
    @Livid 2 楼 GPT 无关回复
    baleeny
        11
    baleeny  
       216 天前
    @drymonfidelia 不至于吧,人家一楼说了问下 GPT 。。。
    drymonfidelia
        12
    drymonfidelia  
       216 天前
    @baleeny 说的都是废话,真正目的 GPT 没想到
    baleeny
        13
    baleeny  
       216 天前
    @drymonfidelia 对,我知道,我说的意思是人家一楼说了下用 GPT 试一下 0.0 ,不是直接用 GPT 回复的哈哈哈,不过想了想你说的也没问题,是无关回复
    Y25tIGxpdmlk
        14
    Y25tIGxpdmlk  
       216 天前
    @Kinnice #3 盲猜最后的原理还是伪造一个登陆界面,让你自己输入账号密码进去。应该没有通过技术手段获取你的权限得腾讯 0day 漏洞。
    如果有,应该可以卖不少钱了。不至于用来做这么 low 的钓鱼
    Y25tIGxpdmlk
        15
    Y25tIGxpdmlk  
       216 天前
    @miyuki #9 有这种能获取到 skey 的接口或者 0day 漏洞,可以卖不少钱了,不会这么轻易就拿出来钓鱼用
    yuaotian
        16
    yuaotian  
       216 天前
    @novobo 是的,贼拉无语,果然最朴素的盗号就是钓鱼,哈哈哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2910 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.