月光博客 » 互联网络 » 防治运营商HTTP劫持的终极技术手段

防治运营商HTTP劫持的终极技术手段

  运营商HTTP劫持(非DNS劫持)推送广告的情况相信大家并不陌生,解决的方法大多也是投诉增值业务部门进而投诉工信部。但这种方法费时费力,投诉接听人员并不了解情况导致答非所问的情况有很多,有时候不但受气最终也没能完全解决问题,或者解决问题后过了一段时间复发的情况并不少见。

  近年来,运营商HTTP劫持非但没有收敛,反而变本加厉,玩出了新花样:比如通过HTTP劫持进行密码截获的活动;比如下载软件被替换的情况;比如劫持进行返利(当然返利不是返给你)的情况。

  本文介绍一种技术手段用来防止HTTP劫持,在大多数情况下不但可以解决广告推送的问题,也能解决密码截获和下载软件被替换的情况。最终的效果是运营商停止了HTTP劫持,而非劫持后通过浏览器插件进行广告过滤。此种方法的好处是既不用安装浏览器插件进行广告过滤,也不用额外的服务器(HTTP代理或VPN之类的),并且能防止下载软件被替换和返利劫持,也能在一定程度上防范密码的泄漏。

防治运营商HTTP劫持的终极技术手段

  要说明这种技术手段的工作原理,首先需要说明大多数情况下运营商HTTP劫持的原理:

  在用户的浏览器连上被访问的网站服务器,发送了HTTP请求后,运营商的路由器会首先收到此次HTTP请求,之后运营商路由器的旁路设备标记此TCP连接为HTTP协议,之后可以抢在网站服务器返回数据之前发送HTTP协议的302代码进行下载软件的劫持,浏览器收到302代码后就会跳转到错误的软件下载地址下载软件了,随后网站服务器的真正数据到达后反而会被丢弃。或者,旁路设备在标记此TCP连接为HTTP协议后,直接返回修改后的HTML代码,导致浏览器中被插入了运营商的广告,随后网站服务器的真正数据到达后最终也是被丢弃。

  从上述原理中看出,如果需要进行HTTP劫持,首先需要进行标记:如果是HTTP协议,那么进行劫持,否则不进行劫持。那么,是否有一种方法,既可以避免被旁路设备标记为HTTP协议,而目标网站收到的仍旧是原来的HTTP请求,并且不需要任何第三方服务器呢?答案是有的:

  旁路设备中检测HTTP协议的模块通常比较简单,一般只会检测TCP连接建立后的第一个数据包,如果其是一个完整的HTTP协议才会被标记;如果并非是一个完整的HTTP协议,由于无法得到足够多的劫持信息,所以并不会被标记为HTTP协议(我们伟大的防火墙并非如此,会检查后续数据包,所以这种方法无效)。了解了这种情况后,防止劫持的方法就比较简单了:将HTTP请求分拆到多个数据包内,进而骗过运营商,防止了HTTP劫持。而目标网站的操作系统的TCP/IP协议栈比较完善,收到的仍旧是完整的HTTP请求,所以也不会影响网页浏览。

  那么如何将浏览器发出的HTTP请求拆分到多个数据包中呢?我们可以在本地架设一个代理服务器,在代理服务器将浏览器的HTTP请求进行拆包,浏览器设置本地的代理服务器即可。我这里经过测试,默认设置的情况下对三大运营商(电信、联通、移动)的HTTP劫持现象都有很好的抑制作用。

  这个软件是个开源软件,代码在: https://github.com/lehui99/ahjs5s 。如果发现有什么问题,欢迎在Github上提Issue。如果有更新,我也会第一时间更新到Github上。

  来源:DavidSky投稿。

防治运营商HTTP劫持的终极技术手段

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    西门盗月   说道:
    微软控制了我们桌面都没做这种事,为什么运营商要做恶?
    高价合做劫持联系我扣1613895715 于 2017-4-21 18:30:41 回复
    高价合作各种劫持流量,各位高手请联系我谈合作。我扣扣1612876099或1613895715
    高价收购劫持流量有多少要多少 于 2018/4/1 12:31:12 回复
    高价收购劫持流量有多少要多少 运营商劫持,80光分劫持 骗子勿扰 长期稳定合作 qq: 168835999
    高价收购劫持流量有多少要多少 于 2018/4/1 12:31:48 回复
    高价收购劫持流量有多少要多少 运营商劫持,80光分劫持 骗子勿扰 长期稳定合作 qq: 168835999
    高价收购劫持流量有多少要多少 于 2018/4/1 12:32:35 回复
    高价收购劫持流量有多少要多少 运营商劫持,80光分劫持 骗子勿扰 长期稳定合作 qq: 168835999
    求合作 于 2018/5/23 10:24:23 回复
    求dns 80分光 劫持合作 让流量变现 骗子勿扰 长期稳定合作 qq:748623247
    支持(50反对(16回复
  1. 2
    天晴好睡觉   说道:
    联通说了,他们那不是劫持,是XX推广业务。。。业务。。。务。。。
    高价合做劫持联系我扣1613895715 于 2017-4-21 18:33:41 回复
    高价合作各种劫持流量,各位高手请联系我谈合作。我扣扣1612876099或1613895715
    支持(41反对(8回复
  1. 3
    flyhua   说道:
    移动就在宽带推广告,与其合作的流氓广告商很多,最臭名昭著的是秒针和阿里妈妈。
    高价合做劫持联系我扣1613895715 于 2017-4-21 18:35:58 回复
    高价收购各种劫持流量,各位高手请联系我谈合作。我扣扣1612876099或1613895715
    支持(25反对(9回复
  1. 4
    睡月催脱   说道:
    运营商真卑鄙~
    高价合做劫持联系我扣1613895715 于 2017-4-21 18:34:06 回复
    高价合作各种劫持流量,各位高手请联系我谈合作。我扣扣1612876099或1613895715
    支持(21反对(12回复
  1. 5
    上网第一站   说道:
    虽然能解决劫持,好些网站还连接不上了(要刷新好几次才行),我是移动专线环境,也是http+dns劫持
    支持(14反对(6回复
  1. 6
    火把果新闻台   说道:
    这个很好,可以防止你的密码被宽带运营商盗取。话说,有些支付宝和网银被盗,我相信绝对不是什么病毒或黑客干的,就是运营商干的。
    yukon12345 于 2015-3-29 10:32:39 回复
    太天真了吧,你以为支付宝网银强制叫你装控件是摆设么
    cds 于 2015-3-30 17:51:37 回复
    知道支付宝插件有坑还安装脑子有问题?要么把浏览器ui改成iPad,要么提取动态链接库。
    支持(18反对(11回复
  1. 7
    tianjingfans   说道:
    我现在经常是这样, 登录,https 网址, 第一次有个 ! 加密不完整,在刷新就好了。 这明显就是 运营商,插入 js 导致的。
    encryptor 于 2015-3-23 16:46:21 回复
    Hi,你访问百度首页时也会出现这种情况吗?https呢?
    Chi 于 2015-3-28 11:51:18 回复
    我这里x城宽带https的百度也劫持,哎真是没话说了。联通会跳广告,倒是电信好些。
    张飞 于 2015/11/22 20:53:23 回复
    电信最近弹bobo,s.oyasj网站,反正电信是不管的。得中央有人。
    YKB 于 2016/1/2 17:27:30 回复
    电信现在整天bobo、oyasj、hzqst、百度视频广告,而且几乎打开五个网页就放一个广告,恶心得要命,要命啊啊!!!!!!!!!
    高价合做劫持联系我扣1613895715 于 2017-4-21 18:31:43 回复
    高价合作各种劫持流量,各位高手请联系我谈合作。我扣扣1612876099或1613895715
    支持(12反对(5回复
  1. 8
    kaydeam   说道:
    博主,你好!下载windows的,运行出错,求解

    正在设置IE代理为127.0.0.1:3128(仅HTTP)...
    Traceback (most recent call last):
    File "wizard.py", line 86, in <module>
    main(sys.argv[1])
    File "wizard.py", line 83, in main
    Main(config).start()
    File "wizard.py", line 36, in start
    set_proxy.set_proxy('http=127.0.0.1:%d' % (self.config['http_proxy_port'], )
    )
    File "E:\sock5\package\ahjs5s\windows\set_proxy.py", line 25, in set_proxy
    set_regkey('ProxyServer', proxy_server)
    File "E:\sock5\package\ahjs5s\windows\set_proxy.py", line 17, in set_regkey
    _, reg_type = winreg.QueryValueEx(INTERNET_SETTINGS, name)
    FileNotFoundError: [WinError 2] 系统找不到指定的文件。
    teddyzhu 于 2016/9/9 19:06:17 回复
    设置去掉设置系统代理 可解决报错
    支持(6反对(1回复
  1. 9
    大漠黄沙的围脖   说道:
    投诉工信部效果非常好
    支持(21反对(18回复
  1. 10
    奈落Wyatt   说道:
    mark,目测效果不大,明天测试下
    支持(13反对(11回复

发表留言