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 结束语

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

(未完待续)