Pengenalan SID Berdaya & SID 3.10
Website desa atau Sistem Informasi Desa (SID) adalah salah satu elemen penting dalam mendukung transparansi dan akuntabilitas pemerintah desa dalam semua kegiatan dan pengelolaan alokasi dana desa.
Namun CMS ini memiliki banyak kerentanan, seperti adanya default password, Remote File Manipulation (RFM), Reflected XSS (RXSS) ataupun Stored XSS (SXSS).
Postingan kali ini akan membahas tentang salah satu kerentanan yang terdapat pada SID Berdaya ataupun SID 3.10.
Stored Cross-Site Scripting in SID Berdaya & SID 3.10
Dork Pencarian:
- "SID Berdaya Login"
- "SID 3.10 Login"
- "Sistem Informasi Desa"
Path yang Vulnerable:
/line
/area
/polygon
/garis
/point
Cara menemukan: Gunakan tools seperti dirb, gobuster, atau dirsearch untuk enumerasi directory.
Contoh Target:
target.com/line
target.com/index.php/line
example-desa.go.id/area
Proof of Concept (PoC)
Langkah 1: Akses Halaman Vulnerable
Klik "Tambah data baru" pada halaman yang vulnerable.
Gambar 1: Akses halaman vulnerable melalui menu "Tambah data baru"
Langkah 2: Input Payload XSS
Isi kolom input dengan payload XSS berikut:
<script>alert('hai')</script>
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>
Gambar 2: Input payload XSS pada kolom yang vulnerable
Langkah 3: Simpan dan Verifikasi
Setelah menyimpan data, reload halaman atau akses kembali untuk melihat eksekusi payload.
Gambar 3: Payload XSS berhasil dieksekusi
Impact & Risk Assessment
| Risk Level | Impact | Keterangan |
|---|---|---|
| High | Session Hijacking | Penyerang dapat mencuri session cookies |
| High | Defacement | Mengubah tampilan website |
| Medium | Phishing | Menampilkan form login palsu |
| Low | Annoyance | Alert box mengganggu pengguna |
Mitigation & Recommendations
PHP Solution:
// Input Validation
$clean_input = filter_var($_POST['input'], FILTER_SANITIZE_STRING);
// Output Encoding
echo htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
JavaScript Solution:
// DOM-based XSS Prevention
function safeHTML(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
Responsible Disclosure
Kerentanan ini telah dilaporkan kepada pihak terkait melalui program bug bounty atau channel responsible disclosure yang tersedia.
Terimakasih kepada kalian semua yang telah membaca.
#MakeThemAware - Tingkatkan awareness tentang keamanan siber!