12
Kerentanan per Teknologi dan Catatan CVE
Dua belas berkas di Technologies/ memakai kerangka yang sama: bagian ## Introduction menanyakan teknologi apa yang sedang dihadapi, bagian ## How to Detect memberi sinyal pengenalan, lalu daftar Some example CVE menutup berkas dengan request contoh. Catatan per CVE disimpan terpisah di CVEs/<tahun>/. README mendaftarkan CVEs 2021 sebagai satu tahun yang sudah terisi, sedangkan baris 2022 dan 2023 masih bertanda SOON di README.md:41-441.
Halaman ini merangkai dua lapis catatan itu: dari sinyal deteksi ke nomor versi, lalu dari nomor versi ke CVE yang dipakai sebagai dasar pengujian. Pengenalan target dan pemetaan scope secara umum dibahas di Reconnaissance dan Pemetaan Scope.
Dua belas teknologi dan sinyal deteksinya
Tabel berikut hanya mencatat sinyal yang benar-benar ditulis di setiap berkas. Kolom terakhir menunjuk baris tempat sinyal dan cara pembacaan versi itu berada.
| Teknologi | Sinyal deteksi | Sumber nomor versi | Rujukan CVE yang ditunjuk | Baris |
|---|---|---|---|---|
| Apache (HTTP Server) | header Server: Apache atau Server: Apache/2.4.50, plus halaman 404 | header atau halaman 404 | CVEDetails vendor_id-45, product_id-66 | Technologies/Apache HTTP Server.md:7-122 |
| Confluence | https://example.com/login.action?os_destination=%2F menampilkan form login | <meta name="ajs-version-number" content="8.20.9"> di source code | CVEDetails vendor_id-3578, product_id-6258 | Technologies/Confluence.md:7-123 |
| Grafana | https://example.com/login menampilkan form login | JSON body "version":"8.3.2" | CVEDetails vendor_id-18548, product_id-47055 | Technologies/Grafana.md:7-124 |
| HAProxy | bagian How to Detect diisi - | tidak ada pembacaan versi | blog JFrog untuk CVE-2021-40346 | Technologies/HAProxy.md:7-95 |
| Jenkins | header X-Jenkins | nilai header X-Jenkins | pwn_jenkins | Technologies/Jenkins.md:7-126 |
| Jira | /secure/Dashboard.jspa atau /login.jsp menampilkan form login | <meta name="ajs-version-number" content="8.20.9"> | CVEDetails vendor_id-3578, product_id-8170 | Technologies/Jira.md:7-127 |
| Joomla | <meta name="generator" content="Joomla! - Open Source Content Management" /> | /administrator/manifests/files/joomla.xml | exploit-db.com dan GHDB #6377 | Technologies/Joomla.md:7-128, Technologies/Joomla.md:439 |
| Laravel | header Set-Cookie: laravel_session= | https://example.com/composer.json | CVEDetails vendor_id-16542, product_id-38139 | Technologies/Laravel.md:7-1210 |
| Moodle | <meta name="keywords" content="moodle, | tidak ada bagian versi, kerentanan didaftar langsung per endpoint | tidak ada | Technologies/Moodle.md:711 |
| Nginx | header Server: nginx | header atau halaman 404 | CVE Details vendor_id-315, product_id-101578 | Technologies/Nginx.md:7-1212 |
| WordPress | tautan tema dan plugin di source code, atau /wp-login.php | /feed dan /?feed=rss2 | wpscan.com | Technologies/WordPress.md:7-1413, Technologies/WordPress.md:26-3114 |
| Zend | bagian How to Detect diisi - | tidak ada pembacaan versi | tidak ada | Technologies/Zend.md:7-1315 |
Empat berkas membaca versi dari header atau halaman error: Apache, Nginx, Jenkins, dan Laravel. Laravel tidak menaruh nomor di header; laravel_session hanya penanda, sehingga versi diambil dari composer.json (Technologies/Laravel.md:7-1210). Confluence dan Jira memakai nama meta tag yang sama, ajs-version-number, sehingga satu pola pembacaan berlaku untuk keduanya (Technologies/Confluence.md:7-123, Technologies/Jira.md:7-127). Grafana satu-satunya yang membaca versi dari body JSON (Technologies/Grafana.md:7-124).
HAProxy dan Zend mengisi bagian deteksi dengan - (Technologies/HAProxy.md:7-95, Technologies/Zend.md:7-1315). Keduanya hanya berguna sebagai daftar CVE tanpa jembatan fingerprint. Moodle menyebut penanda <meta name="keywords" content="moodle, tetapi tidak punya subbagian pembacaan versi (Technologies/Moodle.md:711).
Alur versi sampai pemilihan CVE
Diagram berikut menyatukan keempat jenis sinyal dari tabel di atas menjadi satu keputusan: apakah nomor versi yang terbaca berada di bawah rentang affected. Cabang ya berujung ke catatan CVE, cabang tidak berhenti dan memaksa pencarian endpoint lain.
graph TD
H["Header: Server atau X-Jenkins"] --> V["nomor versi core"]
M["Meta tag: ajs-version-number atau generator"] --> V
J["JSON body: version"] --> V
F["Berkas statis: composer.json, joomla.xml, readme.txt"] --> V
F --> P["nomor versi plugin atau tema"]
V --> C{"di bawah rentang affected?"}
P --> C
C -->|ya| R["pilih CVE dari rujukan produk"]
C -->|tidak| N["cari endpoint lain"]
R --> D["catatan CVE: parameter dan langkah reproduksi"]
D --> E["request bukti"]
style V fill:#8b5cf6,color:#fff
style P fill:#8b5cf6,color:#fff
style C fill:#f59e0b,color:#000
style R fill:#2d7d46,color:#fff
style D fill:#336791,color:#fff
style E fill:#2d7d46,color:#fff
style N fill:#dc2626,color:#fff
%% fig: Alur deteksi versi sampai pemilihan CVE
%% desc: Sinyal header, meta tag, JSON body, dan berkas statis menghasilkan nomor versi, lalu perbandingan dengan rentang affected menentukan CVE mana yang dipakai.Bentuk akhir cabang ya terlihat di berkas Apache: setelah perintah membaca versi, dua CVE didaftar bersama request POST /cgi-bin/... yang siap dikirim (Technologies/Apache HTTP Server.md:16-2716).
Versi core, plugin, dan tema
WordPress dan Joomla memecah pemeriksaan versi menjadi tiga lapis. Keduanya juga menyediakan nama berkas alternatif ketika readme.txt tidak tersedia, dan keduanya menutup instruksi dengan basis data exploit yang berbeda.
| Lapis | WordPress | Joomla |
|---|---|---|
| core | /feed dan /?feed=rss2 (Technologies/WordPress.md:7-1413) | /administrator/manifests/files/joomla.xml (Technologies/Joomla.md:9-1317) |
| plugin | /wp-content/plugins/PLUGINNAME/readme.txt, plus varian readme.TXT, README.txt, README.TXT (Technologies/WordPress.md:16-2418) | /administrator/components/com_NAMEPLUGIN/NAMEPLUGIN.xml, contoh com_contact/contact.xml (Technologies/Joomla.md:15-2419) |
| tema | /wp-content/themes/THEMENAME/style.css dan readme.txt (Technologies/WordPress.md:26-3114) | /wp-content/themes/THEMENAME/style.css dan readme.txt (Technologies/Joomla.md:26-3120) |
| nama berkas alternatif | readme.txt menjadi changelog.txt atau readme.md (Technologies/WordPress.md:16-2418) | NAMEPLUGIN.xml menjadi changelog.txt, readme.md, atau readme.txt (Technologies/Joomla.md:15-2419) |
| kelanjutan | https://wpscan.com (Technologies/WordPress.md:26-3114) | https://exploit-db.com (Technologies/Joomla.md:26-3120) |
Joomla menambahkan satu referensi lagi di bagian akhir, yaitu GHDB #6377 (Technologies/Joomla.md:439). Tidak ada basis data serupa di berkas Moodle maupun Zend.
Anatomi catatan CVE: CVE-2021-36873
Satu catatan CVE di CVEs/2021/ disusun dari bagian yang tetap, sehingga bisa dibaca sebagai pasangan dari berkas teknologi.
| Bagian | Isi | Baris |
|---|---|---|
| Judul | # CVE-2021-36873 | CVEs/2021/CVE-2021-36873.md:121 |
## Description | authenticated persistent XSS di plugin iQ Block Country, parameter &blockcountry_blockmessage | CVEs/2021/CVE-2021-36873.md:422 |
## CVSS (Vector and Score) | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N, 5.5 MEDIUM | CVEs/2021/CVE-2021-36873.md:723 |
## Affected Application | WordPress iQ Block Country plugin | CVEs/2021/CVE-2021-36873.md:1024 |
## Affected Version | <= 1.2.11 | CVEs/2021/CVE-2021-36873.md:1325 |
## Total Installation | 30,000+ | CVEs/2021/CVE-2021-36873.md:1626 |
## Steps to Reproduce | lima langkah, dari login administrator sampai tombol Save Changes | CVEs/2021/CVE-2021-36873.md:18-2327 |
## Proof of Concept | tautan video dan gambar | CVEs/2021/CVE-2021-36873.md:25-3128 |
graph LR
A["Affected Application: WordPress iQ Block Country plugin"] --> B["Affected Version 1.2.11 dan sebelumnya"]
A --> F["CVSS 5.5 MEDIUM"]
A --> G["Total Installation 30,000+"]
B --> C["Description: parameter blockcountry_blockmessage"]
C --> D["Steps to Reproduce lima langkah"]
D --> E["Proof of Concept: video dan gambar"]
style A fill:#336791,color:#fff
style B fill:#f59e0b,color:#000
style C fill:#8b5cf6,color:#fff
style D fill:#2d7d46,color:#fff
style E fill:#2d7d46,color:#fff
style F fill:#f59e0b,color:#000
style G fill:#f59e0b,color:#000
%% fig: Anatomi satu catatan CVE
%% desc: Catatan CVE-2021-36873 mengikat aplikasi, versi affected, parameter rentan, langkah reproduksi, dan bukti dalam satu urutan.Rantai dari halaman teknologi ke catatan CVE ditutup oleh satu perbandingan: readme.txt plugin di wp-content/plugins/PLUGINNAME/ memberi nomor versi (Technologies/WordPress.md:16-2418), Affected Version memberi batas <= 1.2.11 (CVEs/2021/CVE-2021-36873.md:1325), dan Description menyebut parameter &blockcountry_blockmessage sehingga titik uji sudah jelas (CVEs/2021/CVE-2021-36873.md:422).
Bagian yang tetap dibahas di halaman lain
Agar tidak mengulang, isi teknis tiap CVE dibagi ke halaman topik. CVE XSS di Grafana dan Moodle dibahas di Kerentanan Sisi Klien dan Pengalihan URL (Technologies/Grafana.md:14-4729, Technologies/Moodle.md:9-1230), termasuk daftar open redirect Nginx yang lahir dari misconfiguration (Technologies/Nginx.md:24-5331). CVE SSRF di Jira dibahas di Kontrol Akses dan Request Server Side (Technologies/Jira.md:14-2732). Default credentials Grafana dan Jenkins serta signup Jira dibahas di Otentikasi, Sesi, dan Token (Technologies/Grafana.md:48-5533, Technologies/Jenkins.md:68-7134, Technologies/Jira.md:78-8535).
Jebakan saat memakai catatan ini
⚠️ Technologies/Joomla.md:136 berjudul
# Grafana, bukan Joomla. Jangan memakai judul berkas sebagai penanda teknologi; pegang sinyal<meta name="generator" ...>di bagian deteksinya.
⚠️ Pemeriksaan versi tema di Technologies/Joomla.md:26-3120 memakai path
/wp-content/themes/...milik WordPress. Pada Joomla path itu tidak menghasilkan berkas, jadi perlakukan bagian tersebut sebagai salinan templat WordPress.
⚠️ HAProxy dan Zend tidak punya jembatan versi:
How to Detectdiisi-(Technologies/HAProxy.md:7-95, Technologies/Zend.md:7-1315). CVE-nya tidak bisa diverifikasi lewat fingerprint, hanya lewat request contoh.
⚠️ Nginx punya open redirect karena misconfiguration, bukan karena CVE (Technologies/Nginx.md:24-5331). Jangan mencampurnya dengan daftar CVE bernomor saat menyusun laporan.