Apa itu HTTP Basic Authentication

By | September 7, 2025
1,815 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  VoceChat - Your Chat Privately Hosted

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