如何设置外部数据库
如何设置外部数据库
在本节中,我们将向您展示如何设置要连接到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