
1.最近发现访问网页会出现广告,打开查看 Chrome 开发者工具"Sources"项会看到如下类型的信息!
#.http://120.132.63.203/pjk/pag/ys.php?b=AH009346&c=35080218_123.92.164.34_3344392325_14376&m=aHR0cDovL215LmNoaW5hei5jb20vanMvdMuanM= #.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="); 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="); 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 年 9 月 1 日 via Android 直接上 HTTPS 。只要你还在用 HTTP ,运营商有一千种劫持你的方法。 |
5 47jm9ozp 2016 年 9 月 1 日 这不是什么新方法,四五年前长宽就这么玩了 你是服务提供商的话, SSL 保平安 客户的话,珍爱生命远离长宽 |
8 netyoyo 2016 年 9 月 1 日 直接 ADblock 会不会更省事 |
9 BurpSuite OP @netyoyo 在之前说了,他这个劫持链接后把恶意代码注入到正常的 Javascript 文件里面,如果强行阻断那么会导致正常 Javascript 文件无法加载! |
13 KCheshireCat 2016 年 9 月 1 日 为何不在源头下手,要使客户端的浏览器请求运营商的 js 劫持地址,我目前就知道以下方法: 1.DNS 污染 2.直接对网页的 GET 请求抢答,在<head>或<body>中附加<script>节点来达成 3.对网页中<script>资源连接的 GET 请求抢答,直接返回劫持内容,或者返回中间代码对网站进行改写使浏览器做出 2.的行为来达到目的 从这 3 点来看,运营商的劫持都是工作在 OSI 第 4 层,所以我认为在 4 层进行拦截应该是效率最高的 |
14 BurpSuite OP @KCheshireCat 嗯,那倒是,不过要是说只劫持 Javascript 文件的话,还是此方法最方便! |