V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aivier
V2EX  ›  宽带症候群

再分析大连联通机智的插广告方法

  •  1
     
  •   aivier · 2015-11-18 16:20:34 +08:00 · 3823 次点击
    这是一个创建于 3322 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上次回顾:

    /t/231079

    新变化:

    1. 由 JS 判断何时插入广告,降低服务器负载
    2. 智能"白名单",例如对于劫持态度强硬的 2345 不再插广告
    3. 换了个平台, Google AD 疑似被封了?

    吐槽:

    貌似插广告的也看 V2EX ?上次被人扒出来可以通过 ../ 查看上级目录文件就改了代码
    这代码是接网线的写的么?同样的条件判断两次
    服务器是被 D 了么?插广告就算了,还这么拖加载时间

    图示:

    大连联通宽带劫持
    如图所示,大量网站出现右下角广告,不过因为今天他们的服务器疑似"被 D",没有加载出来,只能看到 "关闭" 按钮

    大连联通宽带劫持
    源码

    大连联通宽带劫持
    格式化后

    思路分析:

    1. 由中间服务器进行第一次判断决定是否插入此脚本,目前尚不确定具体判断条件
    2. 若 isa2 (注: isAd2?)不存在,则 1000 毫秒后进行检测,在用户访问的网站不是 2345 首页或搜狗,继续
    3. 调用 checkshow(),生成一个随机数,范围在 0-100 之间;如果是搜狗,返回;如果是 2345 且 随机数大于 20 ,不显示广告,剩下两个 hao123 、 360 导航相同,优酷详情页若随机数大于 50 ,不显示广告

      截止此处,普通网页被插入广告几率为 20%,优酷被插入广告几率为 50%

    4. 这个网站是百度的一部分吗?是 > 5 ; 不是 > 6

    5. 插入 亿玛(亿告) 联盟广告

    6. 插入 Google AD 广告 (目前相关页面没有代码,疑似因为之前的投诉被封号?)

    10 条回复    2015-11-19 15:11:57 +08:00
    gamexg
        1
    gamexg  
       2015-11-18 18:53:30 +08:00
    这种东西通过 Adblock 可以过滤把?
    直接正则域名类型的网站禁止内嵌 IP 地址的 js 应该能过滤掉。
    aivier
        2
    aivier  
    OP
       2015-11-18 19:31:32 +08:00
    @gamexg Adblock 默认屏蔽
    function007
        3
    function007  
       2015-11-18 19:37:11 +08:00
    其实再机智基本也就是插 JS
    加个密就好了
    yjxjn
        4
    yjxjn  
       2015-11-18 19:38:36 +08:00
    没发现啊,同大连联通。不知道是不是我从路由器端直接屏蔽的结果。
    redsonic
        5
    redsonic  
       2015-11-18 20:57:45 +08:00
    把 js 全禁了,只把自己信任的域加入允许加载 js 的白名单即可,从此世界清静了。什么广告,用户数据分析,等等完全对用户无用的“废代码” 99%都会消失。缺点就是开始稍微麻烦点,部分网站排版有问题(其实只允许载入主站域名的 js 即可解决,其他的都是“无用的”)。也可以同时搭配 adblock ,最后就是形成一个个人精确定制化的“ adblock ”。 chrome 开 100 个 tab 也不会有压力。
    xmoiduts
        6
    xmoiduts  
       2015-11-18 21:46:23 +08:00
    小飞机完美解决问题,就是网速会有些慢。
    snsd
        7
    snsd  
       2015-11-19 00:42:19 +08:00 via iPhone
    @xmoiduts 小飞机是什么?
    xmoiduts
        8
    xmoiduts  
       2015-11-19 07:31:14 +08:00 via Android
    @snsd 阴影 sock s
    aivier
        9
    aivier  
    OP
       2015-11-19 07:38:22 +08:00
    @redsonic 其实有 AdBlock 没关系, Chrome 开多了卡还是硬盘和内存跟不上
    KCheshireCat
        10
    KCheshireCat  
       2015-11-19 15:11:57 +08:00
    看 LZ 帖子是用 iptables 来屏蔽广告地址

    其实可以用 Wireshark 来观察 tcp 连接被劫持的情况

    像移动的劫持都是抢答带 ACK , FIN , PSH 标志的 http 302 封包,把你的页面或者 JS 脚本劫持走。

    而正常的 http 302 应答包通常并不会同时标记这 3 个标志位。

    可以朝这个方向考虑,写成 iptables 规则就是

    iptables -A FORWARD -p tcp -m tcp --sport 80 -m u32 --u32 "0>>22&60@10&25=25&&0>>22&60@9>>2&60@0=0x48545450&&0>>22&60@9>>2&60@8=0x20333032" -j DROP

    虽然可能会有误杀,但是劫持是再也没看到过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5244 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 05:42 · PVG 13:42 · LAX 21:42 · JFK 00:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.