Rumah >pangkalan data >tutorial mysql >Bahagian Siri Suntikan SQL - Membina Honeypots untuk Pengesanan Masa Nyata
Pengarang: Trix Cyrus
Alat Pentesting Peta Jalan: Klik Di Sini
TrixSec Github: Klik Di Sini
TrixSec Telegram: Klik Di Sini
Selamat datang ke bahagian 9 siri suntikan SQL (SQLi) kami! Dalam ansuran ini, kami menyelami dunia honeypots yang menarik—alat yang direka untuk menarik penyerang dan mengumpulkan kecerdasan berharga. Honeypots memberikan perspektif unik ke dalam percubaan SQLi, membolehkan pengesanan masa nyata dan cerapan yang lebih mendalam tentang tingkah laku berniat jahat.
Honeypots ialah sistem mudah terjejas yang direka bentuk untuk meniru aplikasi, pangkalan data atau pelayan dunia sebenar. Tidak seperti sistem pengeluaran, honeypots tidak menyimpan data yang sah atau menyediakan perkhidmatan sebenar. Sebaliknya, tujuan mereka adalah untuk memukat penyerang, memantau aktiviti mereka dan mengumpulkan risikan tentang alatan, teknik dan muatan mereka.
Menggunakan honeypot menawarkan beberapa faedah:
Tentukan sama ada hendak menggunakan interaksi rendah atau interaksi tinggi honeypot:
Bina aplikasi web palsu yang kelihatan nyata kepada penyerang.
SELECT * FROM users WHERE username = '$input' AND password = '$password';
Sediakan pangkalan data palsu dengan data palsu. Alat seperti MySQL atau SQLite berfungsi dengan baik. Pastikan pangkalan data tidak bersambung ke sistem sensitif.
Perkenalkan kelemahan suntikan SQL dengan sengaja, seperti:
Pantau semua interaksi dengan honeypot untuk menangkap gelagat penyerang.
SELECT * FROM users WHERE username = '$input' AND password = '$password';
Pastikan honeypot diasingkan daripada sistem pengeluaran untuk mengelakkan pelanggaran yang tidak diingini. Gunakan tembok api, mesin maya atau persekitaran kotak pasir untuk penempatan.
Berikut ialah contoh asas Python menggunakan Flask untuk mencipta honeypot SQLi:
' 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)
Penjejakan IP:
Log alamat IP yang cuba SQLi mengenal pasti sumber berniat jahat.
Corak Tingkah Laku:
Pantau percubaan berulang dan muatan yang berkembang untuk menyesuaikan pertahanan.
Integrasi dengan Perisikan Ancaman:
Kongsi cerapan daripada honeypot anda dengan platform perisikan ancaman global untuk menyumbang kepada komuniti.
Makluman Automatik:
Konfigurasikan makluman masa nyata untuk aktiviti yang mencurigakan menggunakan alatan seperti PagerDuty atau Slack Webhooks.
Pembelajaran Mesin:
Gunakan model ML untuk mengenal pasti corak dalam percubaan SQLi dan meramalkan serangan masa hadapan.
Menggunakan honeypot disertakan dengan tanggungjawab etika dan undang-undang:
Membina honeypot suntikan SQL menyediakan peluang unik untuk memahami penyerang dan menguatkan pertahanan anda. Dengan memantau aktiviti berniat jahat dalam masa nyata, organisasi boleh menjangka kemungkinan serangan, memperhalusi strategi keselamatan mereka dan menyumbang kepada komuniti keselamatan siber yang lebih luas.
~Trixsec
Atas ialah kandungan terperinci Bahagian Siri Suntikan SQL - Membina Honeypots untuk Pengesanan Masa Nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!