#渗透测试#网络安全# 一文搞懂什么是站库分离!!!!

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。

目录

一、站库分离的概念

站库分离的优势

实现站库分离的方法

二、站库分离与微服务架构的关系

站库分离

微服务架构

站库分离与微服务架构的联系

三、站库分离在高并发场景下的优势

1. 提高系统性能

2. 增强系统扩展性

3. 提高系统安全性

4. 便于故障隔离和恢复

5. 便于管理和维护

四、站库分离在电商系统中的应用案例

1. 新蜂商城(Newbee Mall)

2. 青橙商城

3. javashop 升级版

4. 大型电商平台的供应商管理

五、站库分离与主从复制的区别

1. 定义

2. 目的

3. 实现方式

4. 优缺点

5. 应用场景

六、站库分离渗透思路技巧总结

1. 从Web入口渗透

1.1 SQL注入

1.2 文件上传和文件包含

2. 从数据库入口渗透

2.1 弱口令

2.2 存储过程执行命令

3. 判断是否站库分离

3.1 MySQL

3.2 MSSQL

4. 获取敏感信息

4.1 读取文件

4.2 数据库备份


一、站库分离的概念

站库分离是一种常见的网络安全策略,主要用于增强Web应用程序的安全性。在这种架构中,网站的前端(Web Server)和后端数据库(Database Server)被部署在不同的服务器上,而不是在同一台主机上运行。

站库分离的优势

  1. 安全性:通过将Web Server和Database Server分离,即使Web Server受到攻击,攻击者也无法直接访问数据库Server,从而保护了数据库中的敏感信息。

  2. 性能优化:站库分离可以使资源分配更加合理,Web Server和Database Server可以根据各自的需求进行独立的硬件配置和优化,从而提高整体系统的性能。

  3. 维护方便:由于Web Server和Database Server是独立的,因此在进行系统升级、维护或故障排除时,可以更方便地进行操作,而不影响另一个组件。

实现站库分离的方法

为了实现站库分离,通常会采取以下几种措施:

  • 使用SSL协议或数据加密:确保Web Server和Database Server之间的通信是加密的,防止数据在传输过程中被窃取或篡改。

  • 设置访问控制规则:只允许Web Server上的应用程序通过特定的安全措施来访问数据库Server,例如,禁止在HTTP请求中向Web服务器发送不安全的参数。

  • 使用预编译语句:在数据库操作中使用预编译语句(如MSSQL中的prepare语句),可以有效防止SQL注入攻击。

二、站库分离与微服务架构的关系

站库分离和微服务架构都是现代软件开发中常用的设计模式,它们在提高系统的安全性、性能和可维护性方面都发挥着重要作用。尽管它们解决的问题域有所不同,但它们之间也存在一些联系和相似之处。

站库分离

站库分离是一种将Web服务器和数据库服务器分离的架构模式。它的主要目的是提高系统的安全性和性能。通过将Web服务器和数据库服务器部署在不同的服务器上,可以防止攻击者在攻破Web服务器后直接访问数据库服务器,从而保护数据库中的敏感信息。此外,站库分离还可以使资源分配更加合理,提高系统的整体性能。

微服务架构

微服务架构是一种将一个大型的、复杂的系统拆分成多个独立、轻量级的服务的架构模式。每个服务负责特定的业务功能,并且可以独立部署、扩展和升级。微服务架构的主要目的是提高系统的可扩展性、可维护性和稳定性。通过将系统拆分成多个独立的服务,可以降低系统的复杂性,提高开发效率,并且可以灵活地应对业务需求的变化。

站库分离与微服务架构的联系

虽然站库分离和微服务架构解决的问题域有所不同,但它们之间也存在一些联系和相似之处:

  1. 解耦:站库分离通过将Web服务器和数据库服务器分离,实现了前后端的解耦。而微服务架构通过将系统拆分成多个独立的服务,实现了业务逻辑的解耦。两者都强调了解耦的重要性,通过解耦可以提高系统的可维护性和可扩展性。

  2. 独立部署:站库分离使得Web服务器和数据库服务器可以独立部署,提高了系统的灵活性和可扩展性。而微服务架构使得每个服务都可以独立部署,进一步提高了系统的灵活性和可扩展性。

  3. 安全性:站库分离通过将Web服务器和数据库服务器分离,提高了系统的安全性。而微服务架构通过将系统拆分成多个独立的服务,可以降低单点故障的风险,提高系统的安全性。

三、站库分离在高并发场景下的优势

站库分离是一种将Web服务器和数据库服务器分离的架构模式。在高并发场景下,站库分离可以带来以下几个优势:

1. 提高系统性能

在高并发场景下,大量的请求会同时访问数据库,导致数据库成为系统的瓶颈。通过站库分离,可以将Web服务器和数据库服务器部署在不同的服务器上,从而减轻数据库服务器的负担,提高系统的整体性能。

2. 增强系统扩展性

站库分离使得Web服务器和数据库服务器可以独立扩展。当系统面临高并发请求时,可以通过增加Web服务器的数量来提高系统的并发处理能力,而不需要对数据库服务器进行大规模的升级。同样,当数据库服务器的负载过高时,也可以通过增加数据库服务器的数量来提高数据库的并发处理能力。

3. 提高系统安全性

在高并发场景下,系统的安全性尤为重要。站库分离可以防止攻击者在攻破Web服务器后直接访问数据库服务器,从而保护数据库中的敏感信息。此外,站库分离还可以通过设置防火墙规则等方式,进一步提高系统的安全性。

4. 便于故障隔离和恢复

在高并发场景下,系统的任何一个组件出现问题都会对整个系统造成影响。站库分离可以将Web服务器和数据库服务器隔离开来,使得当其中一个组件出现问题时,另一个组件仍然可以正常工作。这样可以减少系统的停机时间,提高系统的可用性。

5. 便于管理和维护

站库分离使得Web服务器和数据库服务器可以独立管理和维护。当系统面临高并发请求时,运维人员可以针对不同的组件采取不同的优化措施,从而提高系统的整体性能。此外,站库分离还可以使得开发人员和运维人员之间的职责更加明确,提高团队的工作效率。

四、站库分离在电商系统中的应用案例

站库分离是一种常见的系统架构模式,特别是在电商系统中,这种模式被广泛应用以提高系统的性能、安全性和可扩展性。以下是一些具体的案例和应用场景:

1. 新蜂商城(Newbee Mall)

新蜂商城是一个典型的前后端分离的电商项目,该项目采用了站库分离的架构模式。具体来说,该项目分为以下几个部分:

  • 商城后端接口:使用Spring Boot 2.X框架开发,负责处理业务逻辑和与数据库的交互。
  • 商城前端:使用Vue.js 及相关技术栈开发,负责展示用户界面和处理用户交互。
  • 商城后台管理系统:同样使用Vue.js 开发,负责管理商品、订单、会员等信息。

通过站库分离,新蜂商城实现了前后端的解耦,提高了系统的灵活性和可维护性。

2. 青橙商城

青橙商城是一个基于Java技术开发的电商项目,该项目也采用了站库分离的架构模式。具体来说,该项目使用了Spring Boot框架实现了前后端分离的架构。通过这种方式,青橙商城实现了用户浏览商品、添加购物车、确认订单、支付等功能,并且支持高并发访问。

3. javashop 升级版

这是一个基于开源项目javashop的升级版B2C大型分布式电商项目。该项目采用了站库分离的架构模式,并且集成了多种技术,如SSO单点登录、第三方支付平台对接、Solr搜索引擎集成、Redis集成开发等。通过站库分离,该项目实现了各个模块的独立部署和扩展,提高了系统的性能和可扩展性。

4. 大型电商平台的供应商管理

虽然这个案例主要介绍了SRM(供应商关系管理)系统在电商行业中的应用,但也可以看出,大型电商平台通常会采用站库分离的架构模式来管理供应商信息。通过这种方式,电商平台可以实现对供应商信息的统一管理,提高管理效率,降低管理成本。

五、站库分离与主从复制的区别

站库分离和主从复制是两种不同的数据库架构设计策略,它们各自有不同的应用场景和优缺点。以下是它们的主要区别:

1. 定义

  • 站库分离:指的是将应用程序(站点)和数据库(库)部署在不同的服务器上。这种架构可以提高系统的可扩展性和安全性,因为应用程序和数据库之间的通信是通过网络进行的,而不是在同一台服务器上直接访问。
  • 主从复制:指的是将一个数据库(主库)的数据复制到另一个或多个数据库(从库)上。这种架构可以提高系统的可用性和性能,因为读操作可以分布在多个从库上,而写操作仍然由主库处理。

2. 目的

  • 站库分离:主要目的是为了提高系统的可扩展性和安全性。通过将应用程序和数据库分离,可以更容易地对它们进行独立的管理和优化。
  • 主从复制:主要目的是为了提高系统的可用性和性能。通过将数据复制到多个从库上,可以实现读写分离,从而减轻主库的负载。

3. 实现方式

  • 站库分离:通常通过修改应用程序的数据库连接配置来实现。应用程序需要通过网络访问数据库,而不是直接访问本地数据库。
  • 主从复制:通常通过数据库自身的复制功能来实现。例如,MySQL提供了主从复制的功能,可以通过配置主库和从库之间的复制关系来实现数据的同步。

4. 优缺点

  • 站库分离
    • 优点:提高系统的可扩展性和安全性;可以独立地管理和优化应用程序和数据库。
    • 缺点:增加了网络通信的开销;需要额外的硬件资源。
  • 主从复制
    • 优点:提高系统的可用性和性能;可以实现读写分离,从而减轻主库的负载。
    • 缺点:增加了数据同步的复杂性;需要额外的硬件资源。

5. 应用场景

  • 站库分离:适用于需要提高系统可扩展性和安全性的场景,例如大型网站和企业级应用。
  • 主从复制:适用于需要提高系统可用性和性能的场景,例如高并发的在线交易系统和实时数据分析系统。

六、站库分离渗透思路技巧总结

对站库分离类型站点通常可以有两个渗透入口点:

1.web 网站

2.数据库

渗透思路其实也是比较常规。但是这里如果两个入口点无非两种路径。

  1. 从 web 网站打入进而打站库分离的数据库,内网渗透

  2. 从数据库打入进而打站库分离的 web 网站,内网渗透

根据不同的路径定制不同的渗透测试方案,下面记录一下流程和容易遇到的问题。

一、从 web 入口渗透

从 web 入口通常就是通过网站的各种漏洞来 getshell,比如文件上传、命令执行、代码执行、还有 SQL 注入写入一句话(into outfile、日志备份等)。

在获得 web 权限或者有诸如文件读取等漏洞时,我们还读数据库配置文件、对数据库内容分析、查找数据库备份,进而对数据库目标 ip 进行渗透,以便后续操作。

二、从数据库入口渗透

但是这里要说主要是外网暴露的数据库入口点弱口令;web 网站 SQL 注入。

从数据库入口渗透,同样主要是为了获取更大的权限,或者扩展我们的渗透成果,比如从数据库里可以得到一些密码信息,用户名等,在后续的内网渗透中可以很有效的帮助我们。

站点是站库分离的,数据库和 web 不在同一台服务器上,这时候不能写入一句话木马通过 web 去连,因为路径没有用。如果是从 web 端找到的 SQL 注入,那么可以通过以下这些方式去做信息收集、获取权限。

示例:

1. 从Web入口渗透

1.1 SQL注入

通过Web端的SQL注入漏洞,可以获取数据库的敏感信息。例如,可以使用以下SQL语句来获取数据库的连接情况:

SELECT * FROM information_schema.PROCESSLIST;

通过查询information_schema.PROCESSLIST表,可以查看当前MySQL的连接情况,从而获取Web端的IP地址。

1.2 文件上传和文件包含

利用文件上传和文件包含漏洞,可以上传恶意脚本文件并执行,从而获取Web服务器的控制权。例如,可以上传一个PHP木马文件,然后通过文件包含漏洞来执行该文件。

2. 从数据库入口渗透

2.1 弱口令

如果数据库暴露在外网并且使用了弱口令,攻击者可以通过暴力破解的方式获取数据库的控制权。例如,可以使用以下SQL语句来获取数据库服务器的主机名:

SELECT @@hostname;

通过获取数据库服务器的主机名,可以进一步判断是否为站库分离2

2.2 存储过程执行命令

在MSSQL中,可以通过存储过程执行系统命令。例如,可以使用以下SQL语句来执行系统命令:

EXEC xp_cmdshell 'ping 192.168.1.1';

通过执行系统命令,可以尝试直接提升权限后渗透其他主机1

3. 判断是否站库分离

3.1 MySQL

在MySQL中,可以通过查询information_schema.PROCESSLIST表来判断是否为站库分离。例如,可以使用以下SQL语句来查询:

SELECT * FROM information_schema.PROCESSLIST;

如果数据库IP地址不是localhost127.0.0.1或当前主机内网IP,则说明为站库分离。

3.2 MSSQL

在MSSQL中,可以通过内置函数来判断是否为站库分离。例如,可以使用以下SQL语句来查询:

SELECT @@hostname AS ServerName, host_name() AS ClientName;

如果客户端与服务端返回的主机名不一样,则说明为站库分离。

4. 获取敏感信息

4.1 读取文件

在MySQL中,如果没有secure_file_priv参数的限制,可以使用load_file()函数来读取文件内容。例如,可以使用以下SQL语句来读取文件:

SELECT load_file('C:/test.txt'); 

通过读取文件,可以获取数据库所在服务器的敏感信息。

4.2 数据库备份

通过查找数据库备份文件,可以获取数据库的敏感信息。例如,可以使用以下SQL语句来查找备份文件:

SHOW VARIABLES LIKE 'secure_file_priv';

通过查找备份文件,可以获取数据库的敏感信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值