Molet

安全研究 | Nginx反向代理钓鱼

Molet 安全防护 2022-11-24 411浏览 0

什么是反向代理

这里我找了一段比较官方的解释。

反向代理(Reverse Proxy)是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。我自己的理解 代理服务器就是充当了一个“中间人”。如果理解的不恰当还请师傅们指出来哈。

Nginx反向代理实例

这里拿我的一台vps做演示 ip:39.xxx.xxx.x。因为vps上装了宝塔 而且 又在宝塔里装了Nginx。

首先找到Nginx的目录。在我的vps上 目录是/www/server/nginx/

找到/www/server/nginx/config/nginx.conf文件

反向代理 https://www.xxx.com/

location/{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的
另一台服务器,实现故障转移。
proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;
proxy_passhttps://www.xxx.com/;
proxy_set_headerHost39.xxx.xxx.9;
proxy_set_headerX-Forwarded-For$remote_addr;
}

proxy_set_header 指令用于在向反向代理的后端 Web 服务器发起请求时添加指定的 Header头信息。

当后端 Web 服务器上有多个基于域名的虚拟主机时,要通过添加 Header 头信息 Host,用于指定请求的域名,这样后端 Web 服务器才能识别该反向代理访问请求由哪一个虚拟主机来处理。(39.xxx.xxx.9是我的vps地址。www.xxx.com是要反向代理的目标)

安全研究 | Nginx反向代理钓鱼

最后我们还需要制定以下 访问日志需要获取的内容 也是在nginx.conf里修改.在http下

log_formatTestLogescape=json'$request_filename$http_x_forwarded_for$fastcgi_script_name$document_root$request_body'$http_cookie;

安全研究 | Nginx反向代理钓鱼

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

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

反向代理钓鱼实例

这里我用我们学校的一个测试系统举例子 按照上面步骤反向代理学校的测试系统

安全研究 | Nginx反向代理钓鱼

之后看到一个一模一样的界面。为了怕学校领导找上门来我把css都撤了 哈哈哈。

这时候叫上万能的舍友来登陆一波康康。

安全研究 | Nginx反向代理钓鱼

根据Nginx.conf确定日志路径在/www/wwwlogs/access.log。讲道理舍友登陆了以后应该记录了 他登陆时提交的post 里面应该包含账号密码。和登录后的cookie信息。

安全研究 | Nginx反向代理钓鱼

访问日志后看到登陆时的账号密码。目标站为https 不过问题不大JSESSIONID后面的是获取到舍友登陆后的cookie。直接替换cookie即可登陆舍友的账号。

安全研究 | Nginx反向代理钓鱼

burp进行正则匹配cookie后进行替换。最后成功登陆。

安全研究 | Nginx反向代理钓鱼

写在最后

本文更多的是根据自己的理解去写的,如果哪里理解或是操作有问题 ,麻烦各位大佬指出来。感谢感谢。最后如果有对Nginx不太了解的,可以去看一下《实战Nginx:取代Apache的高性能Web服务器》这本书,当时也是国光大佬推荐我的,很不错。

继续浏览有关 安全 的文章
发表评论