-
-
那些免费代理悄悄做的龌蹉事儿
-
发表于: 2015-6-25 08:44 1176
-
新闻链接:8d6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6J5k6h3g2T1N6h3k6Q4x3X3g2U0L8$3#2Q4x3V1k6F1k6i4N6K6i4K6u0r3y4K6l9%4x3K6y4Q4x3X3g2Z5N6r3#2D9
新闻时间:2015-06-25
新闻正文:笔者2013年曾发表过一篇文章《免费代理服务器为何免费?》——文中提及代理服务器之所以免费,是因为其可以轻松浸染用户的上网行为并收集数据。而最新上线的Proxy Checker可以检测代理服务器的安全性。
后来,为了找到那些使用了文章中所述的免费代理服务器,我写了个极简单的脚本(实际就是一个PHP函数),从不同的位置请求获取Javascript文件并检测可修改的内容。
评测方法
如果你并不关心代码,请直接跳至检测结果。
我说这个脚本“极简单”是因为这是个完整函数:
/**************************************************************************/
/* scanProxy function by Christian Haschek christian@haschek.at */
/* It's intended to be used with php5-cli .. don't put it on a web server */
/* */
/* Requests a specific file ($url) via a proxy ($proxy) */
/* if first parameter is set to false it will retrieve */
/* $url without a proxy. CURL extension for PHP is required. */
/* */
/* @param $proxy (string) is the proxy server used (eg 127.0.0.1:8123) */
/* @param $url (string) is the URL of the requested file or site */
/* @param $socks (bool) true: SOCKS proxy, false: HTTP proxy */
/* @param $timeout (int) timeout for the request in seconds */
/* @return (string) the content of requested url */
/**************************************************************************/
function scanProxy($proxy,$url,$socks=true,$timeout=10)
{
$ch = curl_init($url);
$headers["User-Agent"] = "Proxyscanner/1.0";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0); //we don't need headers in our output
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,$timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return output as string
$proxytype = ($socks?CURLPROXY_SOCKS5:CURLPROXY_HTTP); //socks or http proxy?
if($proxy)
{
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, $proxytype);
}
$out = curl_exec($ch);
curl_close($ch);
return trim($out);
}
你可以用这个函数做各种分析:
·检查代理是否隐藏了你的IP,通过 588K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3W2H3i4K6u0W2K9r3q4K6j5$3S2W2K9#2)9J5k6h3q4@1i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0k6Q4z5o6W2Q4b7V1g2Q4c8e0g2Q4z5o6S2Q4b7U0m8Q4c8e0c8Q4b7V1c8Q4b7e0m8Q4c8e0N6Q4z5f1q4Q4z5o6c8u0f1q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2)9^5y4q4!0n7y4W2!0q4y4g2)9&6x3q4)9^5c8g2!0q4y4q4!0n7c8q4!0m8x3q4!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4g2)9^5c8W2)9^5x3W2!0q4z5q4)9^5x3q4)9^5x3#2!0q4y4W2)9&6y4g2!0n7x3q4!0q4y4W2)9^5c8q4!0m8c8g2!0q4y4q4!0n7z5q4!0m8c8q4!0q4y4W2!0m8x3#2)9^5x3q4!0q4y4W2)9&6c8W2!0m8y4g2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2)9&6x3q4!0m8y4W2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7z5q4)9^5c8g2!0q4y4q4!0n7c8q4!0m8x3q4!0q4y4#2)9&6b7g2)9^5y4p5W2b7i4@1f1%4i4K6W2n7i4@1t1^5i4@1f1#2i4K6V1H3i4K6S2o6i4@1f1%4i4K6W2m8i4K6R3@1i4@1g2r3i4@1u0o6i4K6W2n7
·检查代理是否使用的https隧道传输(一种安全传输协议),如果不是,那可能是服务器拥有者想查看明文,然后从中提取数据;
·检查代理是否修改了静态网页(例如:添加广告)。
分析443个免费代理服务器
我从各种渠道获得了代理服务器的信息,但是我发现Google有通向所有网站的链接
我们需要检测什么
·是否使用了HTTPS?
·是否修改了JS内容?
·是否修改了静态网页?
·是否隐藏了我的IP?
评测结果
检测(Test) 结果(Result)
测试数(Tested) 443(100%)
上线(Online) 199(44.9%)
下线(Offline) 244(55.1%)
没使用HTTPS(No HTTPS) 157(79%)
修改了JS内容(Modified JS) 17(8.5%)
修改了HTML(Modified HTML)33(16.6%)
没有隐藏IP(IP not hidden) 0(0%)
没有修改内容(Not modifying content) 149(75%)
现在问题来了:75%的代理服务器是安全的?
仅仅因为一个代理服务器“不积极”地修改你的内容,这并不意味着它就是安全的。使用免费代理服务器的的唯一安全的方法就是如果HTTPS可用,你只访问实施HTTPS的站点即可。
只有21%代理服务器使用了HTTPS。
令人震惊的结果
出乎意料的是,会有如此多的代理禁止HTTPS流量。代理服务器这么做可能是因为他们想让你使用HTTP,这样它就能分析你的流量并窃取你的登录凭证了。
199个代理服务器中只有17个(8.5%)修改JS,他们中大多出都被注入了客户广告。但是其中只有两个是错误信息或者web过滤器警告。
33个代理服务器(16.6%)活跃于修改静态HTML页面并且注入广告。
他们中的大多数在结束标签之前加入了下面这段代码:
<link rel="stylesheet" type="text/css" href="http://ads.adt100.com/css/bottom.css" /><div id="center_xad" class="cwindow_xad"><div class="center_title_xad" id="center_title_xad"><img onclick="closeWindow()" width="39px" id="cwindow_xclose" height="11px" src="http://ads.adt100.com/images/close_btn.gif"></div><div id="center_xad_cnt" class="injection_content"></div></div><div id="right_xad" class="window_xad"><div class="right_title_xad" id="right_title_xad"><img onclick="closeWindow()" id="cwindow_rclose" width="39px" height="11px" src="http://ads.adt100.com/images/close_btn.gif"></div><div id="right_xad_cnt" class="injection_content"></div></div><script src="http://ads.adt100.com/js/bottom.js"></script>
绝对的恶意广告,及可能存在cookie窃取。然而,笔者并没有进一步进行检测。
另一个广告注入代理服务器更加“精致”。他们页面的注入脚本如下:
<script type="text/javascript" charset="utf-8" mediaproAccountID="0" mediaproSlotID="0" usermac="" src="/7b26d4601fbe440b35e496a0fcfa15f7/00212600d7e6/w1/i.js" async="async" defer></script><meta charset="utf-8">
有趣的是,他们指向一个看起来像是本地的JS。当浏览器通过代理服务器请求这一文件,代理就会劫持请求然后回复一个受感染的JS。因为它和另一个相同,并非一个跨域JS链接。
如果你仍然认为自己有必要使用一个免费代理服务器,尝试使用一个HTTPS可用的,并且要访问安全的站点。
新闻时间:2015-06-25
新闻正文:笔者2013年曾发表过一篇文章《免费代理服务器为何免费?》——文中提及代理服务器之所以免费,是因为其可以轻松浸染用户的上网行为并收集数据。而最新上线的Proxy Checker可以检测代理服务器的安全性。
后来,为了找到那些使用了文章中所述的免费代理服务器,我写了个极简单的脚本(实际就是一个PHP函数),从不同的位置请求获取Javascript文件并检测可修改的内容。
评测方法
如果你并不关心代码,请直接跳至检测结果。
我说这个脚本“极简单”是因为这是个完整函数:
/**************************************************************************/
/* scanProxy function by Christian Haschek christian@haschek.at */
/* It's intended to be used with php5-cli .. don't put it on a web server */
/* */
/* Requests a specific file ($url) via a proxy ($proxy) */
/* if first parameter is set to false it will retrieve */
/* $url without a proxy. CURL extension for PHP is required. */
/* */
/* @param $proxy (string) is the proxy server used (eg 127.0.0.1:8123) */
/* @param $url (string) is the URL of the requested file or site */
/* @param $socks (bool) true: SOCKS proxy, false: HTTP proxy */
/* @param $timeout (int) timeout for the request in seconds */
/* @return (string) the content of requested url */
/**************************************************************************/
function scanProxy($proxy,$url,$socks=true,$timeout=10)
{
$ch = curl_init($url);
$headers["User-Agent"] = "Proxyscanner/1.0";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0); //we don't need headers in our output
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,$timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return output as string
$proxytype = ($socks?CURLPROXY_SOCKS5:CURLPROXY_HTTP); //socks or http proxy?
if($proxy)
{
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, $proxytype);
}
$out = curl_exec($ch);
curl_close($ch);
return trim($out);
}
你可以用这个函数做各种分析:
·检查代理是否隐藏了你的IP,通过 588K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3W2H3i4K6u0W2K9r3q4K6j5$3S2W2K9#2)9J5k6h3q4@1i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0k6Q4z5o6W2Q4b7V1g2Q4c8e0g2Q4z5o6S2Q4b7U0m8Q4c8e0c8Q4b7V1c8Q4b7e0m8Q4c8e0N6Q4z5f1q4Q4z5o6c8u0f1q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2)9^5y4q4!0n7y4W2!0q4y4g2)9&6x3q4)9^5c8g2!0q4y4q4!0n7c8q4!0m8x3q4!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4g2)9^5c8W2)9^5x3W2!0q4z5q4)9^5x3q4)9^5x3#2!0q4y4W2)9&6y4g2!0n7x3q4!0q4y4W2)9^5c8q4!0m8c8g2!0q4y4q4!0n7z5q4!0m8c8q4!0q4y4W2!0m8x3#2)9^5x3q4!0q4y4W2)9&6c8W2!0m8y4g2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2)9&6x3q4!0m8y4W2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7z5q4)9^5c8g2!0q4y4q4!0n7c8q4!0m8x3q4!0q4y4#2)9&6b7g2)9^5y4p5W2b7i4@1f1%4i4K6W2n7i4@1t1^5i4@1f1#2i4K6V1H3i4K6S2o6i4@1f1%4i4K6W2m8i4K6R3@1i4@1g2r3i4@1u0o6i4K6W2n7
·检查代理是否使用的https隧道传输(一种安全传输协议),如果不是,那可能是服务器拥有者想查看明文,然后从中提取数据;
·检查代理是否修改了静态网页(例如:添加广告)。
分析443个免费代理服务器
我从各种渠道获得了代理服务器的信息,但是我发现Google有通向所有网站的链接
我们需要检测什么
·是否使用了HTTPS?
·是否修改了JS内容?
·是否修改了静态网页?
·是否隐藏了我的IP?
评测结果
检测(Test) 结果(Result)
测试数(Tested) 443(100%)
上线(Online) 199(44.9%)
下线(Offline) 244(55.1%)
没使用HTTPS(No HTTPS) 157(79%)
修改了JS内容(Modified JS) 17(8.5%)
修改了HTML(Modified HTML)33(16.6%)
没有隐藏IP(IP not hidden) 0(0%)
没有修改内容(Not modifying content) 149(75%)
现在问题来了:75%的代理服务器是安全的?
仅仅因为一个代理服务器“不积极”地修改你的内容,这并不意味着它就是安全的。使用免费代理服务器的的唯一安全的方法就是如果HTTPS可用,你只访问实施HTTPS的站点即可。
只有21%代理服务器使用了HTTPS。
令人震惊的结果
出乎意料的是,会有如此多的代理禁止HTTPS流量。代理服务器这么做可能是因为他们想让你使用HTTP,这样它就能分析你的流量并窃取你的登录凭证了。
199个代理服务器中只有17个(8.5%)修改JS,他们中大多出都被注入了客户广告。但是其中只有两个是错误信息或者web过滤器警告。
33个代理服务器(16.6%)活跃于修改静态HTML页面并且注入广告。
他们中的大多数在结束标签之前加入了下面这段代码:
<link rel="stylesheet" type="text/css" href="http://ads.adt100.com/css/bottom.css" /><div id="center_xad" class="cwindow_xad"><div class="center_title_xad" id="center_title_xad"><img onclick="closeWindow()" width="39px" id="cwindow_xclose" height="11px" src="http://ads.adt100.com/images/close_btn.gif"></div><div id="center_xad_cnt" class="injection_content"></div></div><div id="right_xad" class="window_xad"><div class="right_title_xad" id="right_title_xad"><img onclick="closeWindow()" id="cwindow_rclose" width="39px" height="11px" src="http://ads.adt100.com/images/close_btn.gif"></div><div id="right_xad_cnt" class="injection_content"></div></div><script src="http://ads.adt100.com/js/bottom.js"></script>
绝对的恶意广告,及可能存在cookie窃取。然而,笔者并没有进一步进行检测。
另一个广告注入代理服务器更加“精致”。他们页面的注入脚本如下:
<script type="text/javascript" charset="utf-8" mediaproAccountID="0" mediaproSlotID="0" usermac="" src="/7b26d4601fbe440b35e496a0fcfa15f7/00212600d7e6/w1/i.js" async="async" defer></script><meta charset="utf-8">
有趣的是,他们指向一个看起来像是本地的JS。当浏览器通过代理服务器请求这一文件,代理就会劫持请求然后回复一个受感染的JS。因为它和另一个相同,并非一个跨域JS链接。
如果你仍然认为自己有必要使用一个免费代理服务器,尝试使用一个HTTPS可用的,并且要访问安全的站点。
赞赏
赞赏
雪币:
留言: