某品牌路由器广告劫持代码分析

0x00 前言

连着十来天没发技术文章了,讲真,真的不是我不写,月初被学校拜托写一个网站,写了7天才写完,加上修补漏洞,结果由于种种原因,网站无法部署,目测是白写了,超伤心( ╥﹏╥... ),委屈,都怪我没维护好服务器,让服务器遭到那么严重的攻击,给辣么多同学带来了麻烦,自我检讨ing... (省略1000字)

好像跑题了喵,好啦,接下来进入正题。

0x01 从Web查看异常

这两天团队的成员在访问一些页面的时候,发现一些页面有些异常,用同一个设备和浏览器在不同网络环境中访问同一个页面,在浏览器的广告拦截处显示的数字不一样,哎?什么情况?

其他的网络环境中

莫名的多了一个广告拦截

这个细节成功引起了我的兴趣,好了,开始分析。我在此使用的是浏览器广告拦截插件是adblock (这算不算是广告,有没有广告费?),打开插件内置的“Show all requests”功能,看到如下图

多出了一个拦截

我看见了一个奇怪的请求,没错,正常访问的时候没有这段请求,审查网页源代码的时候找到了多了的一个js引用
其他网络环境下

多了一个script引用

啊嘞嘞,这个引用的是什么呢?好奇,打开看一下。
密密麻麻的代码

呃,最讨厌压缩的代码了,格式化一下(附上代码连接

格式化的代码

刚拿到代码时有点兴奋,直接就往下看代码,看了大概1000来行,感觉有些像我以前写过的一部分代码,而那个功能的作用就是“帆布指纹识别”。好,从头看了一下。。。。。。 “fingerprintjs2”?!

喷血

呃,其实我第一眼就看到了这个,嗯,没错,就是这样,这个正是一款知名的开源设备指纹采集插件,也就是俗称的“帆布指纹识别”,即便使用Tor洋葱浏览器,也并不能完全排除被追踪的可能性,虽然这个识别率按照网上的一些测试结果达到了94%,但这个也是一个很可怕的事情。不过,你以为某品牌路由器就给你了这一个“惊喜”吗?不,你错了。这个指纹识别的代码不过才有1000余行,而这个引入的文件总行数为4000余行(这里我使用了代码格式化,不同的代码格式化方式会使行数有些不同,但是这里我依旧可以认为这个代码里面至少还有一部分功能),我们开始向下继续审计代码。

大概在1900行附近,发现一句js引用调用函数
发现一个疑似js文件引用

发现这句话不是执行语句,目测像个配置参数,全文搜索一下,
另一处相同的js函数

先不管那么多的网址,先看看这个js里面有什么东西。
js内容

真的是干净整洁,全文就两个网址,但是这标题,赤裸裸的标题党?
打开链接看看

其实我只是想看看这个链接里面是什么(很单纯的呢,绝对没有抱有什么期望呢),但是我们在电脑的浏览器上并没有看到类似的广告,证明这个广告应该是存在一定的规则,并不是什么时候都有。换成手机版访问一个页面再试试。


拒绝执行那个广告的js语句

执行js之后

果然不出所料,这里面会检测是否为手机端访问,之后再把广告写到页面上,大きな変態!

Web端分析到此为止,你以为这就完了吗?不,这怎么可能结束,接下来,我们再来翻腾一下固件里面的问题。

0x02 固件?

pass

0x04 结束语

固件都没分析完,结束个毛球

(未完待续)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,020评论 3 119
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,826评论 1 92
  • 我所呆在的这个城市的春天终于如期而至,虽然很晚,但是还是来了,我很高兴我坚持的等你到来了,因为这里的春天真的很美。...
    小晓紫籽阅读 537评论 0 1
  • K君是我的高中同学。我们也就仅仅做了1年的同班同学,读书的时候说过寥寥几句话,类似"老师找你""借过"的话,不熟。...
    杨子暮阅读 378评论 0 0
  • 风儿吹不动离愁 雨水打不湿思恋 你俏皮的照片还在我手里 凝视着你微微翘起的眉目 我也不禁微微翘起了嘴唇 仿佛你还在...
    梦旅寒月心阅读 314评论 1 4