电信宽带流量劫持广告复现过程

2018-03-29 15:09:27 +08:00
 mario85

已知广东电信宽带会随机弹出广告窗口(无图,见过的都知道),由于出现得比较随机,一直不太好复现,这几天有点时间研究了下,写了个脚本复现:

host='mat1.gtimg.com'
path='/www/asset/seajs/sea.js'
referer='http://www.qq.com/'
useragent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'

while :
do
   hostips=$(nslookup $host|grep -Po '(?<=Address: ).*$')
   count=$(echo -e "$hostips"|wc -l)
   randresolv=$(echo -e "$hostips"|tail -$((1+RANDOM%count))|head -1)
   date=$(date)
   content=$(curl -s -N --no-keepalive http://$randresolv$path -H "Host: $host" -H "User-Agent: $useragent" -H "Referer: $referer" -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache')
   if echo $content|grep -q 183.59; then
      logtext=$(echo "ChinaTelecom javascript hijacking detected - $randresolv - $date")
      printf "\n$logtext"
      echo $logtext >> ./checklog
      echo $content > ./capturedcontent
   else
      printf .
   fi
   sleep 10
done

电信只劫持 URL 以.js 结尾、有 Referer 头的 HTTP 请求,上网随便找个 js,以腾讯首页中的 SeaJS 为例,将相应信息填入脚本中的host path referer 变量,执行脚本,一段时间(可达一两个小时)后即可出现劫持,劫持频率大概是每 1 到 10 个请求随机出现一次劫持。

运行效果如下图所示: http://ww2.sinaimg.cn/large/0060lm7Tly1fptp6dvpy0j30h20933z0.jpg

劫持后替换的内容:

var _atn_obj_ = new Object; 
 _atn_obj_.oldurl = 'http://mat1.gtimg.com/www/asset/seajs/sea.js?cHVzaA=100745'; 
 _atn_obj_.unified_url = 'http://183.59.53.197:3737/remind_adv/ad_unified_access?SP=ABzs...zoPP'; 
 window.setTimeout(function(){var a=document.createElement("script");a.src=_atn_obj_.oldurl;document.getElementsByTagName("head")[0].appendChild(a);},0); 
 window.setTimeout(function(){var a=document.createElement("script");a.src=_atn_obj_.unified_url;document.getElementsByTagName("head")[0].appendChild(a);},0);

不知道这样算不算是实锤,如果算的话周末准备投诉到 10000,若不见效将写详细报告投诉到工信部

3822 次点击
所在节点    宽带症候群
24 条回复
silencefent
2018-03-29 15:37:24 +08:00
没用哒
LGA1150
2018-03-29 15:54:11 +08:00
是 301/302 跳转吗?可以暂时在路由器上 iptables 过滤抢答包
iptables -I FORWARD -p tcp --sport 80 -m string --string "Location: http://183.59.53." --algo bm -j DROP
(自行去掉自动被 V2 添加的分号)
还可以加个 TTL 匹配,减少负荷
Telegram
2018-03-29 15:55:46 +08:00
最多给你添加到白名单,不给你劫持,要让他停止这种行为,不可能的。
mario85
2018-03-29 15:59:02 +08:00
@LGA1150 不是 302,是直接劫持返回 200 和广告内容
mario85
2018-03-29 16:02:48 +08:00
@Telegram 投工信部也没用?
我到时随便找别的账号看看,要是还在劫持我就不结案
yexm0
2018-03-29 16:07:09 +08:00
没用的,闹到最后顶多就是退钱让你滚蛋。想不要劫持是不可能的
另外你比其他受害者好多了,别人家看到的是黄赌(毒好像还没)相关的东西
/t/403438
/t/396849
LGA1150
2018-03-29 16:08:56 +08:00
@mario85 那就过滤这个 200
winterbells
2018-03-29 16:11:27 +08:00
电信只劫持 URL 以.js 结尾 ———>
可能根据地区不同吧,空白页面也会有广告,就是那种一个字符都没有的网页

劫持还会识别是否是移动设备,有个 js 文件会判断

找客服直接说关闭劫持,她就懂了,不过没有承认劫持,只是反复强调机房那边会处理
mario85
2018-03-29 16:13:00 +08:00
@LGA1150 过滤 200,原内容要没了
现在情况是,访问时有可能直接返回正常内容,有可能返回广告脚本,都是 200
只是返回包头略有不同,有个 Expire 字段
mario85
2018-03-29 16:14:28 +08:00
@winterbells 什么都不做也可能出现广告,其实也就是浏览器或者其他后台进程开了 js,被劫持直接弹出来
mario85
2018-03-29 16:16:10 +08:00
@yexm0 反正两年合约,毁约还能赚一笔
根据经验全市都有这个情况,要是黄毒什么的那电信死定了
learnshare
2018-03-29 16:19:03 +08:00
即便投诉他,也只会针对你家处理一下而已
毕竟隐私的钱很好赚
mario85
2018-03-29 16:24:38 +08:00
@learnshare 反正认识的人多得很,去别人家喝杯茶连个 WiFi 跑下脚本,还出现的话就不说问题解决
篡改用户流量貌似属于违法,现在是传广告,谁知道他们会不会悄咪咪的做别的事情
https://www.zhihu.com/question/20723856
hicdn
2018-03-29 16:27:19 +08:00
停止是不可能的,参见之前国务院 APP 被劫持。
LGA1150
2018-03-29 16:44:49 +08:00
@mario85 抓包看是有两个 200 ?按 TTL 过滤劫持那个
learnshare
2018-03-29 17:11:53 +08:00
@mario85 别的事情肯定要做,钱当然是越多越好了
mario85
2018-03-29 21:19:35 +08:00
@LGA1150 目前还只是简单 F12 了一下,还没用 WireShark 之类的看过
t895
2018-03-30 17:16:40 +08:00
刚刚好撸了个 ntp 反弹,大概 200G 左右,试试打下这个服务器
ShareDuck
2018-04-01 00:48:07 +08:00
关于广告这个问题,第一次是投诉到工信部才解决的,之后的都是 10000 号搞定了。
qwertyegg
2018-04-01 12:08:04 +08:00
这种情况,用 opendns 是不是能解决?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX