作者: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 尝试中的模式并预测未来的攻击。
~Trixsec
以上是SQL注入系列部分——构建实时检测蜜罐的详细内容。更多信息请关注PHP中文网其他相关文章!