如何設置外部數據庫
如何設置外部數據庫
在本節(jié)中,我們將向您展示如何設置要連接到Burp Suite Enterprise Edition的數據庫。這與下列情況有關:
1、您一直在使用Burp Suite企業(yè)版的嵌入式數據庫,并希望將數據傳輸到外部數據庫。
2、您希望創(chuàng)建Burp Suite Enterprise Edition的標準部署,并從一開始就使用外部數據庫。
3、您想要將Burp Suite Enterprise Edition部署到Kubernetes。
為Burp Suite Enterprise Edition準備數據庫涉及以下高級步驟:
連接到數據庫服務器
為您的數據庫類型運行安裝腳本。這將為Burp Suite企業(yè)版創(chuàng)建一個數據庫和兩個用戶。
記下數據庫的連接URL。您稍后將需要此文件來連接Burp Suite企業(yè)版。
數據庫設置腳本
下面的安裝腳本創(chuàng)建了一個新的數據庫和兩個用戶:burp_enterprise和burp_agent。這些由企業(yè)服務器和掃描計算機用于連接到數據庫。如果您設置此數據庫是為了從嵌入式數據庫遷移,則必須使用這些確切的用戶名。
您應該將示例腳本中使用的占位符********字符串替換為您自己的強密碼。
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企業(yè)版使用Microsoft的JDBC驅動程序連接到SQL Server數據庫。默認情況下,驅動程序只允許您連接到具有由公共證書頒發(fā)機構簽名的有效TLS證書的數據庫。因此,在嘗試從Burp Suite Enterprise Edition連接到SQL Server實例之前,需要在SQL Server實例上安裝合適的證書。有關如何執(zhí)行此操作的詳細信息,請參閱Microsoft SQL Server文檔。
注意
作為一種臨時解決方法,您可以通過將;trustServerCertificate=true附加到部署B(yǎng)urp 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存在一個已知問題。本節(jié)說明如何解決此問題。
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、請改用由知名證書頒發(fā)機構簽名的證書。
2、手動分發(fā)自簽名證書的公鑰。請參閱下面的說明,了解如何執(zhí)行此操作的詳細信息。
3、通過將allowPublicKeyRetrieval=true參數附加到數據庫連接URL來禁用引發(fā)此問題的安全功能。除非您完全了解其安全含義,否則不應這樣做,因為這可能會對連接造成中間人攻擊。
手動分發(fā)公鑰
按照MySQL文檔中詳細介紹的步驟在數據庫服務器上獲取RSA密鑰對。
將包含公鑰的.pem文件復制到承載Burp Suite Enterprise Edition服務器的計算機以及您部署的任何外部掃描計算機。此文件的路徑在所有計算機上必須相同。
將serverRsaPublicKeyFile參數附加到數據庫連接URL,將其指向機器上的密鑰位置。舉例來說jdbc:mysql://mysql.dev.example.com:3306/burpenterprise?serverRsaPublicKeyFile=/home/user/public_key.pem