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

阿里云 OSS 被用于诈骗网站

  •  
  •   lns103 · 6 天前 · 3466 次点击

    在其它地方看到,转过来,不知道这个的具体原理是什么

    这个 jpg 实际上是一个 html ,直接访问是会被拦截的,但是加上后面的参数就可以访问了,希望有大佬来解析一下

    诈骗链接:

    https://blj-prod.oss-cn-shenzhen.aliyuncs.com/material/default/default/2bc4767a-9b62-4254-8513-0ae88ca82f14.jpg?data=YpAOcbLP7rTBLAc/gPxCiKaLASa17m2B3zg1FebfUY47LMM/nteukdxJiO1dRvjWHSimrQTvgE2Yg4DwctTe6w==#sbm=Vpyd1G5oAy
    

    诈骗传单图片: img

    诈骗“jpg”的内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title></title>
    		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no,minimal-ui"/>
            <style type="text/css">
                html, body {
                    height: 100%;
                    margin: 0;
                    padding: 0;
                }
                iframe {
                    display: block;
                    width: 100%;
                    height: 100%;
                    border: none;
                }
            </style>
        </head>
        <body>
            <script src="https://pro.jsmaodian.top/jsqiantao.js"></script>
        </body>
    </html>
    
    第 1 条附言  ·  6 天前
    这种方式可以完美绕过目前支付宝、淘宝等 app 内置浏览器的域名白名单限制,扫码可以直接打开
    前几天 aliyuncs.com 被强制改 NS 到 shadowserver 可能与黑产利用后被举报有关
    36 条回复    2025-06-13 10:00:16 +08:00
    liaohongxing
        1
    liaohongxing  
       6 天前
    aliyuncs.com 都被干没了
    epicSoldier
        2
    epicSoldier  
       6 天前
    jsqiantao js 里写了逻辑啊,带了参数会响应一个正常的链接;不带参数响应一个 404 的链接
    lns103
        3
    lns103  
    OP
       6 天前
    @epicSoldier 大意了,原来访问请求被拦截也是诈骗网站实现的😂,现在这个链接里的参数似乎已经打不开了,不知道阿里云能不能对这种假 jpg 进行识别处理
    webs
        4
    webs  
       6 天前
    @liaohongxing this explains.
    aispring
        5
    aispring  
       6 天前
    刚没加参数也能正常返回,可能和文件名+response header 有关吧,content-type:application/xml
    kk2syc
        6
    kk2syc  
       6 天前   ❤️ 1
    访问 https://blj-prod.oss-cn-shenzhen.aliyuncs.com/material/default/default/2bc4767a-9b62-4254-8513-0ae88ca82f14.jpg?data=YpAOcbLP7rTBLAc/gPxCiKaLASa17m2B3zg1FebfUY47LMM/nteukdxJiO1dRvjWHSimrQTvgE2Yg4DwctTe6w==#sbm=Vpyd1G5oAy

    1.加载 https://pro.jsmaodian.top/jsqiantao.js

    2.访问 api: https://dataoppo.jsmaodian.top/rpa.php?data=YpAOcbLP7rTBLAc/gPxCiKaLASa17m2B3zg1FebfUY47LMM/nteukdxJiO1dRvjWHSimrQTvgE2Yg4DwctTe6w==
    返回 https://tencent.xiaohuacloud2.top/s/gfm50sujq9as ,访问 302 跳转 https://untill.searies807.top/0501-10T-01.html

    3.通过
    https://dataoppo.jsmaodian.top/title.php?url=https%3A%2F%2Ftencent.xiaohuacloud2.top%2Fs%2Fgfm50sujq9as%3F 设置页面标题,同时创建 html 元素

    4.通过步骤 2 的 302 地址引入 https://9h3xtym2bss6p.s3-eu-west-2.amazonaws.com/AA0501kf03.js
    ```
    window._MICHAT = window._MICHAT || function () { (_MICHAT.a = _MICHAT.a || []).push(arguments) };
    _MICHAT("cptid", "bb71628407f3151e1c");
    _MICHAT("host", "teinz87s.ldhlk.cn");
    (function (m, d, q, j, s) {
    j = d.createElement(q),s = d.getElementsByTagName(q)[0];
    j.async = true;
    j.charset ="UTF-8";
    j.src = ("https:" == document.location.protocol ? "https://" : "http://") + "teinz87s.ldhlk.cn/Web/js/loader.js";
    s.parentNode.insertBefore(j, s);
    })(window, document, "script");

    ```

    目前 https://teinz87s.ldhlk.cn/Web/js/loader.js 不可访问,暂时不知道后续
    pkoukk
        7
    pkoukk  
       6 天前
    这个 jpg 实际上是一个 html
    阿里云的 OSS 不会检测 mimeType 的吗
    dzdh
        8
    dzdh  
       6 天前
    @pkoukk mime 可以自己自定义。不是根据后缀来的。你可以把一个 exe 设置成 html 渲染。
    gorvey
        9
    gorvey  
       6 天前
    用 apifox 请求了下,响应格式是 text/plain ,虽然后缀是.jpg 但是 MIME type 是文本格式,浏览器会按照网页的形式解析

    至于参数是这个网页内部的逻辑,不是这个导致 jpg 变成网页

    具体怎么如何实现,我猜测是使用了某种方式改变了文件的 mime type ,或者是强制让浏览器接受文本类型
    CloudMx
        10
    CloudMx  
       6 天前
    你就把这个.jpg 理解是个路由吧,你想设置啥样就啥样,它弄错.jpg 只是增加迷惑性。
    luolw1998
        11
    luolw1998  
       6 天前
    duzhuo
        12
    duzhuo  
       6 天前
    只能举报,qq 群里发的簧片都是扫码跳转各大厂商的 cdn
    pkoukk
        13
    pkoukk  
       6 天前
    @dzdh 可以根据文件的前 N 个字节进行实际内容判断,对假类型强制修正,这种就会被改成 a.jpg.html
    lisongeee
        14
    lisongeee  
       6 天前
    看了一下这个链接的 response header 里的 Content-Type 是 application/xml
    lns103
        15
    lns103  
    OP
       6 天前   ❤️ 1
    @CloudMx 这不是最主要的,普通扫描用户也看不到这个 jpg ,主要是浏览器的 url 会一直保留在阿里云 oss 的 domain ,同时加载出伪造聊天界面,导致支付宝、淘宝、抖音的域名白名单拦截失效
    lns103
        16
    lns103  
    OP
       6 天前
    这是支付宝扫码,并随便输入兑换码进入的界面,完全没有被拦截
    dzdh
        17
    dzdh  
       6 天前
    @pkoukk #13 我是说。阿里云允许且支持这么玩。 对于 OSS 来说,不存在“文件后缀”这个概念,完整的 URI 只是一个 PATH ,这个 PATH 需要返回什么样的 header 头,都是可以自定义的。
    NewYear
        18
    NewYear  
       6 天前
    OSS 提供域名都有这个问题。
    国内外都存在这个问题,钓鱼钓了很多年了,换个用户名继续搞。

    属于是传统手艺了
    scyuns
        19
    scyuns  
       6 天前
    还是 iframe 的页面 全是作假的
    lisongeee
        20
    lisongeee  
       6 天前
    其实阿里云会拦截 html ,但是不拦截 xml

    黑产通过使用 xml 格式文件头来模拟 html 来让浏览器把 xml 当做 html 来渲染

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    lujiaxing
        21
    lujiaxing  
       6 天前   ❤️ 1
    所以你们以为阿里云 域名是因为啥被拖进 sinkhole 的?
    十有八九是上面大量的灰产黑产触发什么自动机制了.
    ala2008
        22
    ala2008  
       6 天前
    居然可以是假的 jpg ,那为什么不直接用 html 呢
    coldle
        23
    coldle  
       6 天前 via Android
    @ala2008
    境内对象存储一般否不允许用他们的域名预览 html
    pkoukk
        24
    pkoukk  
       6 天前
    @dzdh #17 如果真的允许,那为什么要伪装这一下呢?直接就用 html 不好么
    macaodoll
        25
    macaodoll  
       6 天前
    这种东西防不了的,有很多小白,为了水点博客文章,就把项目上的 oss 代码直接贴出来,ak sk 都不脱敏一下.
    mercury233
        26
    mercury233  
       6 天前
    oss 公开访问时防了 html 不防 xml ,属于严重的漏洞
    sampeng
        27
    sampeng  
       6 天前
    不是。。你们是不是认为只有中国的黑产叫黑产,全球范围就不算了?阿里云有这毛病,aws 之类的都差不太多的。问题不是在 oss ,问题是在支付宝和微信他无法拦截或者说拦截成本巨高,要么,干脆完全不允许外链,把 oss 外链加黑名单这两家都别活了。还有。这个和前几天没半毛钱关系,微信和支付宝的被害人跑去美国投诉?????
    coldle
        28
    coldle  
       6 天前
    试了下还真不太对劲。。阿里居然没强制返回 `Content-Disposition: attachment`
    coldle
        29
    coldle  
       6 天前   ❤️ 3
    @coldle #28
    破案了,阿里的预览拦截是按 Content-Type 白名单来的,然后他们的白名单里没有 xml

    阿里文档: https://help.aliyun.com/zh/oss/user-guide/how-to-ensure-an-object-is-previewed-when-you-access-the-object?spm=a2c4g.11186623.0.i4

    那确实随便用 xml 模拟 html 了 🤣

    比如上传一个对象内容如下,Content-Type 设置成 application/xml 就 ok 了

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>XML 模拟 HTML 示例</title>
    </head>
    <body>
    <p>这是一个 xml 模拟 html 的示例</p>
    <br />
    <form>
    <input type="checkbox" id="option1" />
    <label for="option1">选项一</label><br />
    <input type="checkbox" id="option2" />
    <label for="option2">选项二</label><br />
    <input type="checkbox" id="option3" />
    <label for="option3">选项三</label>
    </form>
    </body>
    </html>
    coldle
        30
    coldle  
       6 天前
    @coldle #29
    刚注意到最后一行是全部限制了,应该只有老用户可以这么玩
    xiaozecn
        31
    xiaozecn  
       6 天前 via Android
    你们会相信阿里是无辜的么🫣
    fkdtz
        32
    fkdtz  
       6 天前
    这么干相当于把 oss 当做云主机了,攻击者不需要搞域名备案,直接把恶意页面搞里头,域名是 aliyuncs.com 背书,这招太妙了。
    怪不得阿里云现在限制不做自定义域名的 oss 必须下载文件,不给预览了,只有早期创建的 oss bucket 还没强制。
    dzdh
        33
    dzdh  
       6 天前
    @pkoukk #24 那是为了欺骗微信、qq 等其他社交软件,让这些软件误认为是图片然后绕过某些安全检测认证,等真正点开的时候,浏览器发现是 html 就以 html 展示了。
    zishang520
        34
    zishang520  
       5 天前 via Android
    哈?这不是我发布到 tg 和 x 安全情报社上的么
    lns103
        35
    lns103  
    OP
       5 天前 via Android
    @zishang520 就是在 tg 上看到的😂
    Nldgdsm
        36
    Nldgdsm  
       3 天前
    @lns103 #35 请问是哪一个 tg 群呢,可以分享下么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:36 · PVG 10:36 · LAX 19:36 · JFK 22:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.