说起来,我可算是国内跟ISP流氓广告打交道最早的一小部分人了。
当年(当然现在还是)的紫光绿信……唉,都快一年了,还是被ISP强X着啊……
投诉了无数次,各种地方,无奈XX勾结,忽悠偶没商量……
当然了,我这个不像用电信的那个xd的分析的“互联星空”什么的,来的那么及时。俺这里是无规律出现……(但是现在我已经有了不太准确的预感了,哈哈)
终于抓住一次,不能放过,给大家看看中国ISP的流氓产业是怎么做的……
这边的基本是这么做的:
(这东西并不拦截TCP的三次握手,注意!)
当一个不幸的GET请求通过的时候,劫持设备得到了这个包的N-seq,ack
然后计算出了客户端期望返回的seq,N-seq,Ack,并把预先设定的广告代码附在后面,发回客户
广告代码里有一个刷新命令,客户端会在确认这个包收到之后,给服务器发送一个RST重置会话,然后刷新页面(新建tcp三次握手,GET,……)
当然了,我访问的这个服务器有点慢的,客户机给服务器发送了RST之后,服务器真正的响应GET请求的回复才到达。(在GET发送后大概0.2s后返回的)
当然了,这个响应数据包的seq,ack,已经被那个伪造的回复占用了,所以这个包被丢弃了(记得TCP有重发和处理重复包的机制吧?)
说实话,这个劫持手段并不高明,就是跟真正的服务器拼响应时间。一般来说,一个省内的网络,响应时间都是非常快的,这个劫持设备发送包有可能比真正的包后到达客户,而且省内的网络普遍节点太多,一个路由上的客户不是很集中,投放的效果也不是很好,所以,把这种垃圾设备放在骨干网路由器上是真tm“明智”的选择啊!
附上抓包的结果,我就不贴图了,是Sinffer Pro 4.7抓的,有兴趣的看看吧。
这两天tm的忙面试,等过了的再回来对付狗Ri的网通…… |