电信劫持HTTP数据包事件

开 学以来几个月都没有失眠过,难得这次失眠了。历来我一直以为电信插入广告是通过篡改返回的HTTP数据包,在其中插入Javascript来读取AD的, 这样只要把某个js脚本的url封锁即可(电信路由器竟然自带封锁URL功能)。现在发现电信贱了,好吧,不是贱了,是更贱了。

读取www.hostloc.com,劫持后得到是这样的数据:

<html>
<body scroll='no' style='border:0;margin:0;padding:0;'>
<iframe src='http://www.hostloc.com/?' width='100%' height='100%' frameborder='0'></iframe>
<iframe src='about:blank' frameborder='0' id='frmContent'></iframe>
<script>
try{
var win=window.frames[1];
var s=screen;
var ss="http://121.15.207.176:4022/logo.jpg?p="
+navigator.appMinorVersion+"|"+s.availHeight+"|"+s.availWidth+"|"+s.colorDepth+"|"+s.height+"|"+s.width;
win.location=ss;}
catch(e){
location.reload(true);}
_hInterval=window.setInterval('Check()', 500);
function Check(){
try{
var win=window.frames[0];
if(win.document.readyState!='complete'){return;}
window.clearInterval(_hInterval);
_hInterval=null;
var doc=win.document;
for(var i in doc.links){
if(doc.links[i].target=="")
{doc.links[i].target="_top";}}
for(var i in doc.forms){
if(doc.forms[i].target==""){doc.forms[i].target="_top";}}}
catch(e){}
}
window.setInterval('window.status=location.href', 200);
</script>
</body>
</html>

看来电信构造了个html页面,把原始网页放在了iframe里面,再用javascript载入电信121.15.207.176:4022服务器上的东西。

上几副图:

手动把CHINA_FUCKING_TELECOM劫持到我服务器173.212.221.150,得到结果:
>
总之最后交给电信处理。三天时间网络终于恢复正常。


没有评论: