Apa itu HTTP Basic Authentication

By | September 7, 2025
2,119 Views

Apa itu HTTP Basic Authentication? HTTP Basic Authentication (Basic Auth) adalah salah satu mekanisme paling sederhana untuk proteksi akses di HTTP.

  • Server minta client kirim username + password.
  • Client mengirim kredensial dalam bentuk Base64-encoded di header HTTP.
  • Jika benar → server kasih akses. Kalau salah → server balas 401 Unauthorized.

Cara Kerja

  1. Client akses resource dilindungi
    GET /admin.cgi?sid=1 HTTP/1.1
    Host: www.example.com
    
  2. Server balas 401 Unauthorized + header WWW-Authenticate
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Basic realm="Restricted Area"
    
  3. Client kirim ulang request dengan header Authorization
    GET /admin.cgi?sid=1 HTTP/1.1
    Host: www.example.com
    Authorization: Basic YWRtaW46cGFzc3dvcmQ=
    

    👉 YWRtaW46cGFzc3dvcmQ= adalah Base64 dari:

    admin:password
    
  4. Server cek kredensial → kalau valid, balas 200 OK.

Ciri-Ciri Basic Auth

  • Tidak ada form login HTML, browser langsung munculkan popup login.
  • Sangat lemah, karena password hanya di-encode Base64 (mudah dibongkar).
  • Biasanya dipakai untuk halaman admin lama / CGI (contohnya Shoutcast admin).

Contoh manual pakai curl

Kalau kamu tahu user & pass:

curl -u admin:12345 http://www.example.com:30000/admin.cgi?sid=1

Curl otomatis menambahkan header:

Authorization: Basic YWRtaW46MTIzNDU=

Bedanya dengan Form Login

Basic Auth Form Login
Username & password dikirim via HTTP Header (Authorization) Username & password dikirim via body (POST) atau URL (GET)
Ditandai dengan WWW-Authenticate: Basic realm="..." Ada <form> HTML dengan input username & password
Browser popup login otomatis Login page dengan HTML form
Sangat simpel tapi lemah Bisa lebih kompleks (captcha, CSRF, dsb.)

👉 Jadi, saat kamu lihat WWW-Authenticate: Basic realm="Shoutcast Server", itu jelas pakai HTTP Basic Authentication.

Uji coba login pada url http://www.coba.com:30000/admin.cgi?sid=1 dengan hydra

hydra -V -f -l admin -P 1000000-password-seclists.txt -s 30000 www.ujcoba.com http-get '/admin.cgi?sid=1'
  • -Vverbose, tampilkan setiap attempt (user+password yang sedang dicoba).

  • -f → berhenti otomatis setelah menemukan satu kombinasi valid.

  • -l admin → username yang dipakai adalah admin (fix, bukan daftar).

  • -P 1000000-password-seclists.txt → file wordlist berisi daftar password yang akan dicoba.

  • -s 30000 → port target adalah 30000 (karena default HTTP biasanya port 80).

  • www.ujicoba.com → nama host target.

  • http-get → modul yang dipakai Hydra, dalam hal ini untuk menyerang HTTP Basic Authentication via GET request.

  • '/admin.cgi?sid=1' → path yang dilindungi Basic Auth. Dikutip '...' supaya zsh/bash tidak mengacaukan karakter ?

Jadi maksud keseluruhan

Hydra akan mencoba login ke http://www.ujicoba.com:30000/admin.cgi?sid=1
menggunakan username admin dan password-password dari file 1000000-password-seclists.txt.
Hydra akan menampilkan setiap percobaan, dan berhenti begitu menemukan password yang valid.

Output kalau berhasil

See also  Enum User Terhadap Nama Pengguna di OpenSSH

Biasanya Hydra akan menampilkan sesuatu seperti ini:

[30000][http-get] host: www.ujicoba.com   login: admin   password: 123456
1 of 1 target successfully completed, 1 valid password found