1.最近发现访问网页会出现广告,打开查看 Chrome 开发者工具"Sources"项会看到如下类型的信息!
#.http://120.132.63.203/pjk/pag/ys.php?b=AH009346&c=35080218_123.92.164.34_3344392325_14376&m=aHR0cDovL215LmNoaW5hei5jb20vanMvdWMuanM= #.http://139.196.239.52/?d=8c6c6ddabeceb654272abb060c463aeb&i=123.92.164.34&m=101B548199BA&redirect=http://tool.chinaz.com/template/default/js/public/mobilepage.js?v=201607&radius=
2.很明显发现原始的连接被 Redirect 到了运营商服务器并注入恶意 JavaScript 代码! 3.我的做法是这样的,首先$_GET['m'];接收请求中的 m 参数,并 Base64Decode 解码,然后用 fopen 功能进行打开 Base64Decode 解码后的地址,最后输出出来!具体的代码如下!最后测试一番发现正常!无任何问题! 4.在 Chrome 安装 Switcheroo Redirector 扩展,然后把劫持的连接 307 Redirect 到你的服务器即可,这样即不影响 JavaScript 的载入也能阻断掉注入恶意代码!
1
BurpSuite OP <?php
header('Content-Type: application/javascript'); header('Pragma: no-cache'); header("Content-type: text/html; charset=utf-8"); if( isset($_GET['redirect']) ){$Redirect = $_GET['redirect'];}else {$Redirect = "http://cdn.bootcss.com/zepto/1.0rc1/zepto.min.js";} $JavaScriptFile = $Redirect; $JavaScriptFile = $JavaScriptFile ."". $JavaScript = fopen($JavaScriptFile,"r"); if($JavaScript){//判断打开错误 while(!feof($JavaScript)) { echo fgets($JavaScript).""; } { fclose($JavaScript); } }else { echo "\r\n# JavaScript 响应超时!\r\n";// } ?> |
2
BurpSuite OP <?php
header('Content-Type: application/javascript'); header('Pragma: no-cache'); header("Content-type: text/html; charset=utf-8"); if( isset($_GET['m']) ){$IDM = $_GET['m'];}else {$IDM = "aHR0cDovL2Nkbi5ib290Y3NzLmNvbS96ZXB0by8xLjByYzEvemVwdG8ubWluLmpz";} $DeCodeBase64 = base64_decode($IDM); $JavaScriptFile = $DeCodeBase64; $JavaScriptFile = $JavaScriptFile ."". $JavaScript = fopen($JavaScriptFile,"r"); if($JavaScript){//判断打开错误 while(!feof($JavaScript)) { echo fgets($JavaScript).""; } { fclose($JavaScript); } }else { echo "\r\n# JavaScript 响应超时!\r\n";// } ?> |
3
BurpSuite OP 新手发帖希望能收到些回复! :)
|
4
raysonx 2016-09-01 10:09:16 +08:00 via Android
直接上 HTTPS 。只要你还在用 HTTP ,运营商有一千种劫持你的方法。
|
5
ooxxcc 2016-09-01 10:10:45 +08:00
这不是什么新方法,四五年前长宽就这么玩了
你是服务提供商的话, SSL 保平安 客户的话,珍爱生命远离长宽 |
8
netyoyo 2016-09-01 10:20:21 +08:00
直接 ADblock 会不会更省事
|
9
BurpSuite OP @netyoyo 在之前说了,他这个劫持链接后把恶意代码注入到正常的 JavaScript 文件里面,如果强行阻断那么会导致正常 JavaScript 文件无法加载!
|
13
KCheshireCat 2016-09-01 13:16:59 +08:00 1
为何不在源头下手,要使客户端的浏览器请求运营商的 js 劫持地址,我目前就知道以下方法:
1.DNS 污染 2.直接对网页的 GET 请求抢答,在<head>或<body>中附加<script>节点来达成 3.对网页中<script>资源连接的 GET 请求抢答,直接返回劫持内容,或者返回中间代码对网站进行改写使浏览器做出 2.的行为来达到目的 从这 3 点来看,运营商的劫持都是工作在 OSI 第 4 层,所以我认为在 4 层进行拦截应该是效率最高的 |
14
BurpSuite OP @KCheshireCat 嗯,那倒是,不过要是说只劫持 JavaScript 文件的话,还是此方法最方便!
|