当前位置: 首页 > news >正文

SRC漏洞挖掘——4.安全配置错误漏洞实战详解

目录

  • 本文所有测试均在个人独立靶场下进行,禁止未授权渗透测试
  • 前言:安全配置漏洞基础说明
  • 一、文件解析漏洞
    • Apache HTTPD 多后缀解析漏洞
      • 漏洞编号 CVE-2017-15715
  • 二、目录遍历漏洞
    • Apache目录遍历漏洞
      • 漏洞编号 CVE-2021-42013
    • Nginx目录穿越漏洞
      • 漏洞编号 CNVD-2010-0917
    • pikachu靶场目录遍历漏洞
      • 漏洞编号: 靶场无CVE编号
  • 待续、更新中......

本文所有测试均在个人独立靶场下进行,禁止未授权渗透测试

本文涉及的技术仅供网络安全学习与自查修复使用,严禁用于非法入侵。所有实验均在作者个人搭建的隔离环境中完成。

前言:安全配置漏洞基础说明

原理

系统或应用程序在部署或配置过程中存在错误,导致安全机制失效或未启用

利用方式

1. 访问默认账户或弱口令登录管理界面2. 利用未删除的测试页面或示例代码获取系统信息3. 通过开放的端口或服务直接入侵(如暴露的数据库端口)4. 利用未打补丁的已知漏洞(如远程代码执行)5. 绕过错误配置的访问控制(如CORS允许任意域请求API)

修复

1. 自动化配置管理:使用工具(如Ansible、Docker)标准化配置,减少人工错误。2. 及时更新与打补丁3. 最小权限原则:限制账户权限,关闭不必要的服务/端口。4. 强化认证:禁用默认账户,使用强密码或双因素认证(2FA)。5. 配置审计:定期扫描配置错误(如使用Nessus、漏洞扫描工具)。6. 监控与日志:实时监控异常访问,分析日志以检测潜在攻击。

案例

tomcat 示例应用程序没有删除, 攻击者通过端口扫描工具发现标准的管理员页面,通过弱密码猜测,进入管理员界面,部署木马程序. 如下图所示

一、文件解析漏洞

介绍

Web容器(Apache、Nginx、IIS等)在解析文件时,将非脚本文件解析成脚本文件格式,并得以执行而产生的漏洞。黑客可以利用该漏洞实现非法文件的解析。 例: 文件上传漏洞中, jpg后缀的图片文件就是非脚本文件, 当成php文件进行解析. 文件解析漏洞主要由于网站管理员操作不当或者Web服务器自身的漏洞,导致一些特殊文件被IIS、apache、nginx或其他Web服务器在某种情况下解释成脚本文件执行

phpstudy 中三种web容器都存在, 可以进行切换使用

Apache HTTPD 多后缀解析漏洞

介绍

Apache HTTPD 是 Apache 服务里的一个Web 服务 Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令. 例: cmd.php.jpg 文件 Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别(不在mime.types内),则继续向左识别. 当我们请求这样一个文件cmd.php.xxx,xxx后缀无法识别向左,发现后缀是php,交给php处理这个文件. 最后一步虽然交给了php来处理这个文件,但是php也不认识.xxx的后缀,不解析。 运维人员在配置服务器时,为了使apache服务器能解析php,而自己添加一个handler: AddHandler application/x-httpd-php .php 意思: AddHandler 将文件扩展名映射到指定的处理程序 application/x-httpd-php(类似php解析器)结果: 在有多个后缀的情况下,只要一个文件含有.php后缀的文件,将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

漏洞编号 CVE-2017-15715

无需CVE 的原因 CVE(通用漏洞与暴露)编号主要用于标识软件自身的缺陷。而此问题的根源在于服务器的配置指令(如 AddHandler),导致文件执行规则不符合预期,并非 Apache 程序的代码存在缺陷,因此通常不具备 CVE 编号 为什么加cve? 需要过审
  • 靶场
docker容器(看成虚拟机):打开Ubuntu虚拟机, 进入之前下载的vulhub 靶场目录 从桌面file 文件夹进入 一直进入到目录: vulhub/httpd/apache_parsing_vulnerability

启动靶场

启动docker容器:sudodocker-composeup-d查看正在运行的容器:sudodockerps进入容器,执行指令:sudodockerexec-it010 /bin/bash# exec 执行容器; -it 容器id一般3位就够,这里的id为010 ;# /bin/bash 是要执行该指令, 类似进入到命令行界面; 有些是/bin/shell ...,这里有所不同# 这里也可以是: cat /etc/passwd进入容器中的配置文件:cd/etc/apache2/conf-available/catdocker-php.conf

可以看到错误的handler配置

查看Ubuntu的ip地址:ifconfig查看其中ens33地址,并复制其中的ip地址访问漏洞

本地浏览器进行访问:http://xxx.xxx.xxx.xxx/

复现漏洞

Windows下 , 上传cmd.php.jpg 文件(一句话木马);

Ubuntu中docker的根目录也可以看到其中上传的文件

使用webshell管理工具连接并访问目标地址http://xxx.xxx.xxx.xxx/var/www/html/uploadfiles/cmd.php.jpg;成功访问

尝试删除错误配置

删除错误的配置, 由于docker中没有编辑器vim等,必须先复制出来到Ubuntu中:# 复制 容器id号: 复制的内容 当前路径sudodockercp010:/etc/apache2/conf-available/docker-php.conf.# 编辑并删除错误语句sudovimdocker-php.conf :1,1d :wq# 复制覆盖掉原本文件sudodockercpdocker-php.conf 010:/etc/apache2/conf-available/rebootcat覆盖成功 退出: eixt# 注意靶场启动,得连接到网络

二、目录遍历漏洞

介绍

允许攻击者在未授权的状态下读取应用服务上任意文件的安全漏洞。这包括应用代码、数据、凭证以及操作系统的敏感文件。 在有些情况下,攻击者还可能对服务器里的文件进行任意写入,更改应用数据甚至完全控制服务器。 程序在实现上没有充分过滤用户输入的目录跳转符(如../),导致用户可以恶意提交目录跳转,实现服务器上的任意文件遍历.# 危害少, 但摸鱼必备; 还有其他的如版本号泄露漏洞, 可公司中提交漏洞

Apache目录遍历漏洞

漏洞编号 CVE-2021-42013

环境搭建

# 修改配置文件D:\web\tools\php2018\PHPTutorial\Apache\conf\vhosts.conf 文件 将其中的: Options-Indexes+FollowSymLinks +ExecCGI 设置为: Options +Indexes +FollowSymLinks +ExecCGI# 意思: Options +Indexes 允许列出目录===phpstudy网站根目录设置中的,允许目录列表一样重启phpstudy

新建test文件夹,用以测试文件,在test文件夹下存放一些文件 访问test目录: http://127.0.0.1/test/# 需要删除www下index.php 与l.php 文件结果: 列出目录

点击sql.txt文件, 可以直接打开,查看文件内容

修复漏洞

将: +Indexes 改为:-Indexes重启phpstudy中服务


再次访问, 失效

Nginx目录穿越漏洞

介绍

Nginx在配置别名(Alias)的时候,如果忘记加 / ,将造成一个目录穿越漏洞。# 错误的配置文件如下location /files{alias/home/;}原本的目的是为了让用户访问到/home/目录下的文件) 但当我们访问/files../ ,实际到达的目录为: /home/../

/home/…/
本来访问的是home文件夹,但后面加了../后, 就向上进行穿越, 到达根目录

…/
目录穿越, 也可应用于普通URL中; 正常情况下是访问http://ip:端口/files/../...这里是Nginx配置错误, 访问/files…/,才有这种写法

漏洞编号 CNVD-2010-0917

环境搭建

# Ubuntu中 使用vulhub靶场进入文件夹目录: /Desktop/file/vulhub-master/nginx/insecure-configuration 启动容器:sudodocker-composeup-d访问靶场: http://xxx.xxx.xxx.xxx:8081/files/(ip为虚拟机的ip地址;之间不要有空格)进入容器,执行命令:sudodockerexec-itb88 /bin/bash 访问: 虚拟机ip地址:8081/files..(穿越到根目录)

访问:http://xxx.xxx.xxx.xxx:8081/files/,可以发现, 我们明明访问的files文件夹下的内容, 但是实际上是home目录下的help.txt文件(如上图所示)

当访问:http://xxx.xxx.xxx.xxx:8081/files../时,可以发现从files文件夹进行了目录穿越, 穿越到了根目录中

一般正常访问时:http://xxx.xxx.xxx.xxx:8081/files/../../这样, 访问到了欢迎界面

原因就是错误的设置了配置文件:
location/files{
alias /home/;
}
files 少写了一个/
应该配置为:
location/files/{
alias /home/;
}

修复漏洞

# 修复代码如下server{listen8081;root /usr/share/nginx/html;index index.html;server_name_;autoindex on;location /files/{# /files 变为 /files/alias/home/;}}# 进入靶场文件夹,修改文件error2.conf配置文件file/vulhub-master/nginx/insecure-configuration 修改后,进行复制文件:dockercperror2.conf cr8:/etc/ngingx/conf.d/ 最后, 重启:sudodockerrestart cr8

可以看到docker 容器中error2.conf 的错误配置

pikachu靶场目录遍历漏洞

漏洞编号: 靶场无CVE编号

复现

访问靶场, 任意点击,发现通过title参数来控制文件内容,那么使用../ 可以试一试

点击概述发现文件名dir.php

访问title=…/dir.php 可以访问到上级目录的内容

访问title=…/…/…/README.md ,访问到根目录下的README.md文件

1 可以使用burpsuite工具来标记文件名…/…/…/dir.php, 跑文件名字典,来进行爆破文件
2 或者直接将一整个都进行标记,../../../dir.php, 字典文件中存在…/…/…/进行爆破,比如以下这种:

在网站www根目录下同级目录若有个123.txt文件,存放的账户密码,那么

访问: ?title=…/…/…/…/…/123.txt ,可以进行目录穿越获取到文件内容


待续、更新中…

欢迎关注我**「悟道子HACK笔记」**,获取更多:

  • 🔥 最新网络安全技术分享
  • 🎯 实战靶场源码与解析
  • 📚 系统化学习路线指南
  • 💡 行业动态与职业发展建议

以上就是今日博客的全部内容了
创作不易,若对您有帮助,可否点赞、关注一二呢,感谢支持!

http://www.jsqmd.com/news/1135488/

相关文章:

  • 5分钟掌握:如何用Better BibTeX插件彻底解决Zotero文献管理难题
  • 工作中Git的使用,基于GitLab,保姆级教程!
  • 软件测试学习笔记
  • iOS开发 SwiftUI 14:ScrollView 滚动视图
  • 实战p5.js:3步构建惊艳的可视化项目与创意编程应用
  • 如何为洛雪音乐配置完美音源:新手3分钟快速上手指南
  • EhViewer开源漫画浏览应用:从零开始的完整使用指南
  • linux的dd命令详解
  • 别被坑了!2026实测靠谱的AI写作辅助平台|省心版
  • 【RHCA+】基本正则表达式
  • 2026年暑期 AI 简历工具推荐:毕业生求职必备
  • 十七.读写区块索引(上)
  • OpenCore Legacy Patcher:一场针对苹果硬件生态的技术革命与架构重构
  • 如何为QQNT桌面客户端部署LiteLoader插件加载器
  • C语言从入门到精通 第2讲——数据类型和变量
  • Qwt 7.0 新特性介绍 — 更现代、更强大的Qt数据可视化库
  • 注意力塑造现实
  • Tetris Game核心功能解析:从手动操作到AI自动决策的完美切换
  • PIC18F46K40与171010550构建数字DC-DC降压系统
  • 第9课:比较运算符与if 判断语句
  • OpenClaw 安装使用指南 (Windows)-对接钉钉、飞书、QQ
  • 五大神经网络模型原理与实战:CNN、RNN、GAN、Transformer、GNN选型指南
  • 读普林斯顿计算机公开课14未来
  • 图像增强 Gamma 校正:从原理到调参,3 个关键参数优化指南
  • 高性能异步网络架构与多线程下载管理:EhViewer技术实现深度解析
  • MultiPathNet核心原理解析:为什么多路径网络能提升目标检测精度?
  • 系统运行与维护核心知识梳理
  • Grafana Infinity Datasource:解锁多源数据可视化新维度
  • Linux命令小全
  • STM32开发