作者:Trix Cyrus
Waymap滲透測試工具:點這裡
TrixSec Github:點這裡
TrixSec Telegram:點此
歡迎來到我們的 SQL 注入 (SQLi) 系列的第 9 部分!在本期中,我們將深入探討蜜罐的迷人世界——這些工具旨在吸引攻擊者並收集有價值的情報。蜜罐為 SQLi 嘗試提供了獨特的視角,從而能夠即時檢測並更深入地洞察惡意行為。
蜜罐是故意存在漏洞的系統,旨在模仿現實世界的應用程式、資料庫或伺服器。與生產系統不同,蜜罐不會儲存合法資料或提供實際服務。相反,他們的目的是引誘攻擊者、監視他們的活動並收集有關其工具、技術和有效負載的情報。
部署蜜罐有幾個好處:
決定使用低交互還是高交互蜜罐:
建立一個對攻擊者來說看似真實的虛假 Web 應用程式。
SELECT * FROM users WHERE username = '$input' AND password = '$password';
用假數據設定一個虛擬資料庫。 MySQL 或 SQLite 等工具運作良好。確保資料庫不連接到敏感系統。
故意引入SQL注入漏洞,如:
監控與蜜罐的所有互動以捕捉攻擊者行為。
SELECT * FROM users WHERE username = '$input' AND password = '$password';
將蜜罐與生產系統隔離,以防止意外違規。使用防火牆、虛擬機器或沙箱環境進行部署。
這是一個使用 Flask 建立 SQLi 蜜罐的基本 Python 範例:
' OR 1=1; DROP TABLE users; --
from flask import Flask, request import sqlite3 app = Flask(__name__) # Dummy database setup def init_db(): conn = sqlite3.connect('honeypot.db') c = conn.cursor() c.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)") c.execute("INSERT INTO users (username, password) VALUES ('admin', 'password123')") conn.commit() conn.close() @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] # Deliberate vulnerability: SQL query concatenates user input query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'" print(f"Query executed: {query}") # Logs the SQL query conn = sqlite3.connect('honeypot.db') c = conn.cursor() c.execute(query) result = c.fetchall() conn.close() if result: return "Login successful!" else: return "Invalid credentials." if __name__ == "__main__": init_db() app.run(debug=True)
IP 追蹤:
記錄嘗試 SQLi 識別惡意來源的 IP 位址。
行為模式:
監控重複嘗試和不斷演變的有效負載以適應防禦。
與威脅情報整合:
與全球威脅情報平台分享來自蜜罐的見解,為社群做出貢獻。
自動警報:
使用 PagerDuty 或 Slack Webhooks.
機器學習:
使用 ML 模型識別 SQLi 嘗試中的模式並預測未來的攻擊。
部署蜜罐需要承擔道德和法律責任:
建立 SQL 注入蜜罐提供了了解攻擊者並加強防禦的獨特機會。透過即時監控惡意活動,組織可以預測潛在的攻擊,完善其安全策略,並為更廣泛的網路安全社群做出貢獻。
~Trixsec
以上是SQL注入系列部分-建構即時偵測蜜罐的詳細內容。更多資訊請關注PHP中文網其他相關文章!