Article / 文章中心

如何设置外部数据库

发布时间:2024-01-18 点击数:193

如何设置外部数据库

在本节中,我们将向您展示如何设置要连接到Burp Suite Enterprise Edition的数据库。这与下列情况有关:

1、您一直在使用Burp Suite企业版的嵌入式数据库,并希望将数据传输到外部数据库。

2、您希望创建Burp Suite Enterprise Edition的标准部署,并从一开始就使用外部数据库。

3、您想要将Burp Suite Enterprise Edition部署到Kubernetes。

为Burp Suite Enterprise Edition准备数据库涉及以下高级步骤:

连接到数据库服务器

为您的数据库类型运行安装脚本。这将为Burp Suite企业版创建一个数据库和两个用户。

记下数据库的连接URL。您稍后将需要此文件来连接Burp Suite企业版。

数据库设置脚本

   下面的安装脚本创建了一个新的数据库和两个用户:burp_enterprise和burp_agent。这些由企业服务器和扫描计算机用于连接到数据库。如果您设置此数据库是为了从嵌入式数据库迁移,则必须使用这些确切的用户名。

您应该将示例脚本中使用的占位符********字符串替换为您自己的强密码。

PostgreSQL。

Oracle.

MariaDB / MySQL.

Microsoft SQL Server。

注意

不支持AWS Aurora数据库。

PostgreSQL

CREATE DATABASE burp_enterprise; CREATE USER burp_enterprise PASSWORD '********'; CREATE USER burp_agent PASSWORD '********'; GRANT ALL ON DATABASE burp_enterprise TO burp_enterprise; \c burp_enterprise postgres GRANT ALL ON SCHEMA public TO burp_enterprise;

Oracle

CREATE TABLESPACE burp_enterprise_tabspace; CREATE USER burp_enterprise DEFAULT TABLESPACE burp_enterprise_tabspace QUOTA UNLIMITED ON burp_enterprise_tabspace IDENTIFIED BY ********; GRANT CREATE PROCEDURE, CREATE SEQUENCE, CREATE SESSION, CREATE TABLE, CREATE TRIGGER, CREATE SYNONYM, CREATE PUBLIC SYNONYM, DROP PUBLIC SYNONYM TO burp_enterprise; CREATE USER burp_agent IDENTIFIED BY ********; GRANT CREATE SESSION to burp_agent;

MariaDB / MySQL

CREATE DATABASE burp_enterprise CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_unicode_ci'; CREATE USER 'burp_enterprise'@'%' IDENTIFIED BY '********'; CREATE USER 'burp_agent'@'%' IDENTIFIED BY '********'; GRANT ALL PRIVILEGES ON burp_enterprise.* TO 'burp_enterprise'@'%' WITH GRANT OPTION;

如果您在安装MySQL数据库时遇到错误,请参阅下面的故障排除部分,了解如何解决几个已知问题的详细信息。

Microsoft SQL Server

sp_configure 'contained database authentication', 1; RECONFIGURE; CREATE DATABASE burp_enterprise CONTAINMENT = PARTIAL; USE burp_enterprise; CREATE USER burp_enterprise WITH PASSWORD = '********'; CREATE USER burp_agent WITH PASSWORD = '********'; ALTER ROLE db_owner ADD MEMBER burp_enterprise;

身份验证模式

若要支持基于密码的登录,还需要确保为安装启用了Windows身份验证和SQL Server身份验证选项。此选项有时称为混合模式身份验证。

Microsoft SQL Server的其他配置

Burp Suite企业版使用Microsoft的JDBC驱动程序连接到SQL Server数据库。默认情况下,驱动程序只允许您连接到具有由公共证书颁发机构签名的有效TLS证书的数据库。因此,在尝试从Burp Suite Enterprise Edition连接到SQL Server实例之前,需要在SQL Server实例上安装合适的证书。有关如何执行此操作的详细信息,请参阅Microsoft SQL Server文档。

注意

作为一种临时解决方法,您可以通过将;trustServerCertificate=true附加到部署Burp Suite Enterprise Edition时提供的JDBC连接URL来绕过此证书验证。

对于不受信任的网络,我们不建议将此作为长期解决方案。它可能会使恶意第三方拦截到您的数据库连接上的流量。

数据库连接URL格式

要将Burp Suite Enterprise Edition连接到新数据库,您需要在多个位置提供JDBC URL。此URL的格式因数据库类型而略有不同。

PostgreSQL:jdbc:postgresql://<host>:5432/burp_enterprise

甲骨文:jdbc:oracle:thin:@//<host>:1521/<instance-id>

MariaDB / MySQL:jdbc:mysql://<host>:3306/burp_enterprise

Microsoft SQL Server:jdbc:sqlserver://<host>:1433;databaseName=burp_enterprise

Microsoft SQL Server用户注意事项

如果您尚未在SQL Server实例上安装合适的TLS证书,则需要将;trustServerCertificate=true附加到URL以绕过JDBC驱动程序的证书验证。我们不建议将此作为长期解决方案,因为它可能会使恶意第三方拦截到您的数据库连接上的流量。

MySQL数据库故障排除

使用自签名公钥来验证MySQL 8存在一个已知问题。本节说明如何解决此问题。

RSA公钥在客户端不可用

当使用MySQL 8的默认身份验证机制时,Burp Suite Enterprise Edition驱动程序验证数据库的公钥。如果密钥是自签名的,则会显示以下异常:

liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: java.sql.SQLTransientConnectionException: Could not connect to address=(host=127.0.0.1)(port=3306)(type=master) : RSA public key is not available client side (option serverRsaPublicKeyFile not set)

解决此问题有几个选项:

1、请改用由知名证书颁发机构签名的证书。

2、手动分发自签名证书的公钥。请参阅下面的说明,了解如何执行此操作的详细信息。

3、通过将allowPublicKeyRetrieval=true参数附加到数据库连接URL来禁用引发此问题的安全功能。除非您完全了解其安全含义,否则不应这样做,因为这可能会对连接造成中间人攻击。

手动分发公钥

按照MySQL文档中详细介绍的步骤在数据库服务器上获取RSA密钥对。

将包含公钥的.pem文件复制到承载Burp Suite Enterprise Edition服务器的计算机以及您部署的任何外部扫描计算机。此文件的路径在所有计算机上必须相同。

将serverRsaPublicKeyFile参数附加到数据库连接URL,将其指向机器上的密钥位置。举例来说jdbc:mysql://mysql.dev.example.com:3306/burpenterprise?serverRsaPublicKeyFile=/home/user/public_key.pem