应对运营商劫持 Javascript 文件的新方法! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BurpSuite
V2EX    宽带症候群

应对运营商劫持 Javascript 文件的新方法!

  •  
  •   BurpSuite 2016 年 9 月 1 日 3538 次点击
    这是一个创建于 3419 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.最近发现访问网页会出现广告,打开查看 Chrome 开发者工具"Sources"项会看到如下类型的信息!

    #.http://120.132.63.203/pjk/pag/ys.php?b=AH009346&c=35080218_123.92.164.34_3344392325_14376&m=aHR0cDovL215LmNoaW5hei5jb20vanMvdMuanM= #.http://139.196.239.52/?d=8c6c6ddabeceb654272abb060c463aeb&i=123.92.164.34&m=101B548199BA&redirect=http://tool.chinaz.com/template/default/js/public/mobilepage.js?v=201607&radius=

    2.很明显发现原始的连接被 Redirect 到了运营商服务器并注入恶意 Javascript 代码! 3.我的做法是这样的,首先$_GET['m'];接收请求中的 m 参数,并 Base64Decode 解码,然后用 fopen 功能进行打开 Base64Decode 解码后的地址,最后输出出来!具体的代码如下!最后测试一番发现正常!无任何问题! 4.在 Chrome 安装 Switcheroo Redirector 扩展,然后把劫持的连接 307 Redirect 到你的服务器即可,这样即不影响 Javascript 的载入也能阻断掉注入恶意代码!

    15 条回复    2016-09-07 15:05:27 +08:00
    BurpSuite
        1
    BurpSuite  
    OP
       2016 年 9 月 1 日
    <?php
    header('Content-Type: application/Javascript');
    header('Pragma: no-cache');
    header("Content-type: text/html; charset=");
    if( isset($_GET['redirect']) ){$Redirect = $_GET['redirect'];}else {$Redirect = "http://cdn.bootcss.com/zepto/1.0rc1/zepto.min.js";}
    $JavascriptFile = $Redirect;
    $JavascriptFile = $JavascriptFile ."".
    $Javascript = fopen($JavascriptFile,"r");
    if($Javascript){//判断打开错误
    while(!feof($Javascript))
    {
    echo fgets($Javascript)."";
    }
    {
    fclose($Javascript);
    }
    }else {
    echo "\r\n# Javascript 响应超时!\r\n";//
    }
    ?>
    BurpSuite
        2
    BurpSuite  
    OP
       2016 年 9 月 1 日
    <?php
    header('Content-Type: application/Javascript');
    header('Pragma: no-cache');
    header("Content-type: text/html; charset=");
    if( isset($_GET['m']) ){$IDM = $_GET['m'];}else {$IDM = "aHR0cDovL2Nkbi5ib290Y3NzLmNvbS96ZXB0by8xLjByYzEvemVwdG8ubWluLmpz";}
    $DeCodeBase64 = base64_decode($IDM);
    $JavascriptFile = $DeCodeBase64;
    $JavascriptFile = $JavascriptFile ."".
    $Javascript = fopen($JavascriptFile,"r");
    if($Javascript){//判断打开错误
    while(!feof($Javascript))
    {
    echo fgets($Javascript)."";
    }
    {
    fclose($Javascript);
    }
    }else {
    echo "\r\n# Javascript 响应超时!\r\n";//
    }
    ?>
    BurpSuite
        3
    BurpSuite  
    OP
       2016 年 9 月 1 日
    新手发帖希望能收到些回复! :)
    raysonx
        4
    raysonx  
       2016 年 9 月 1 日 via Android
    直接上 HTTPS 。只要你还在用 HTTP ,运营商有一千种劫持你的方法。
    47jm9ozp
        5
    47jm9ozp  
       2016 年 9 月 1 日
    这不是什么新方法,四五年前长宽就这么玩了

    你是服务提供商的话, SSL 保平安
    客户的话,珍爱生命远离长宽
    BurpSuite
        6
    BurpSuite  
    OP
       2016 年 9 月 1 日
    @ooxxcc 我说的是反劫持的新方法!不是劫持的新方法!另外不是长宽,和长宽基本上差不多!
    BurpSuite
        7
    BurpSuite  
    OP
       2016 年 9 月 1 日
    @raysonx 其他的劫持的方法都好办些,另外现在 HTTPS 普及率还不是很高,很多网站还是 HTTP
    netyoyo
        8
    netyoyo  
       2016 年 9 月 1 日
    直接 ADblock 会不会更省事
    BurpSuite
        9
    BurpSuite  
    OP
       2016 年 9 月 1 日
    @netyoyo 在之前说了,他这个劫持链接后把恶意代码注入到正常的 Javascript 文件里面,如果强行阻断那么会导致正常 Javascript 文件无法加载!
    47jm9ozp
        10
    47jm9ozp  
       2016 年 9 月 1 日
    @BurpSuite 反劫持很简单啊,要么换运营商要么上 https 。。
    BurpSuite
        11
    BurpSuite  
    OP
       2016 年 9 月 1 日
    @ooxxcc 嗯,简单粗暴哈!不过用技术解决问题更相对实在些!
    Lentin
        12
    Lentin  
       2016 年 9 月 1 日
    @BurpSuite 有些不是篡改 JS 是直接在你网页里面加哦
    KCheshireCat
        13
    KCheshireCat  
       2016 年 9 月 1 日   1
    为何不在源头下手,要使客户端的浏览器请求运营商的 js 劫持地址,我目前就知道以下方法:

    1.DNS 污染

    2.直接对网页的 GET 请求抢答,在<head>或<body>中附加<script>节点来达成

    3.对网页中<script>资源连接的 GET 请求抢答,直接返回劫持内容,或者返回中间代码对网站进行改写使浏览器做出 2.的行为来达到目的

    从这 3 点来看,运营商的劫持都是工作在 OSI 第 4 层,所以我认为在 4 层进行拦截应该是效率最高的
    BurpSuite
        14
    BurpSuite  
    OP
       2016 年 9 月 7 日
    @KCheshireCat 嗯,那倒是,不过要是说只劫持 Javascript 文件的话,还是此方法最方便!
    BurpSuite
        15
    BurpSuite  
    OP
       2016 年 9 月 7 日
    @Lentin 嗯,是的,所以此方法只对劫持 Javascript 文件的管用!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     993 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:33 PVG 02:33 LAX 10:33 JFK 13:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86