---
# System prepended metadata

title: 'Write-up Bug Bounty Masterclass '

---

# Write-up Bug Bounty Masterclass

Gần đây, top 5 hunter mọi thời đại trên hackerone [nagli](https://hackerone.com/nagli?type=user) có [mở một khóa học free](https://www.wiz.io/bug-bounty-masterclass) cho anh em muốn bắt đầu tham gia bug bounty. Thi xong có [cert](https://www.wiz.io/bug-bounty-masterclass/certificate/7a12756d-596f-46cd-a16f-4a74bf6f56f9) luôn nha. Nay mình làm write-up cho anh em tiện tham khảo và dễ dàng vượt qua 9 bài test để lấy cert.

Các chall ctf này đều được anh [nagli](https://x.com/galnagli/) mô phỏng lại các lỗi trong thực tế mà anh em hay gặp.

## Major Airline Data Dump
![image](https://hackmd.io/_uploads/HyHVi5wLbl.png)
![image](https://hackmd.io/_uploads/SkoVs5PIWl.png)
Dùng `subfinder` để tìm các subdomain thì tìm ra 2 subdomain liên quan đến chall này `airlines.bugbountymasterclass.com` và `api.airlines.bugbountymasterclass.com`.
![image](https://hackmd.io/_uploads/H1cti5DUZx.png)
![image](https://hackmd.io/_uploads/BkCKjcv8-e.png)
Dùng `httpx` để hiện thị rõ title và status code của các subdomain.
![image](https://hackmd.io/_uploads/H1xCscD8bx.png)
![image](https://hackmd.io/_uploads/r1X0scvIZl.png)
![image](https://hackmd.io/_uploads/SJLAs5DIbe.png)
Dùng `nuclei` để quét thì phát hiện được `api.airlines.bugbountymasterclass.com` dùng `swagger`.

![image](https://hackmd.io/_uploads/B1iUn5DLWe.png)
![image](https://hackmd.io/_uploads/SyywhcPLbx.png)
![image](https://hackmd.io/_uploads/ryg9dh5vL-g.png)
Ta thấy `/api/getMemberships` làm lộ ID của user. 
![image](https://hackmd.io/_uploads/rJt9h9wUbg.png)
![image](https://hackmd.io/_uploads/H1C535PIWg.png)

Các api khác như `/api/getBooking` và `/api/getMembership` cần ID để thực thi. Vậy đây là lỗi api để lộ thông tin nhạy cảm.

## Domain Registrar Data Exposure
![image](https://hackmd.io/_uploads/rkSsGjwLZl.png)
![image](https://hackmd.io/_uploads/HyxwozsD8Wl.png)
Dùng `ffuf` để fuzzzing thì tìm được `/uploads`.
![image](https://hackmd.io/_uploads/SknAfsw8We.png)
![image](https://hackmd.io/_uploads/Bk0RGjPL-l.png)
![image](https://hackmd.io/_uploads/H1WyQjDIbe.png)
Trong mục `/uploads` để lộ database của trang web.

## Logistics Company Admin Panel Compromise
![image](https://hackmd.io/_uploads/SJLsQswIZe.png)
![image](https://hackmd.io/_uploads/rJusQsP8Wx.png)
Bài này khá ảo dạng blind xss mà mình bấm bừa phát ra flag luôn nên đoán author không cho server cleanup dữ liệu mỗi lần làm nên chỉ cần một người làm được thì nó nhả flag ra luôn. 

## Logistics Company Admin Panel Compromise
![image](https://hackmd.io/_uploads/Skv94owIWe.png)
![image](https://hackmd.io/_uploads/rJFc4oP8-e.png)
Bài này hơi lỏ chỉ cần khởi 1 S3 service trên AWS rồi đặt bucket là `www.fintech.net` rồi cấu hình static web hosting một file `index.html` là cái xml trên là đc. Nên cũng chỉ cần một người làm được thì nó sẽ nhả ra flag. Mình đoán thế =)).

## SSRF Vulnerability on Major Gaming Company

![image](https://hackmd.io/_uploads/S1tMHiwLbg.png)
![image](https://hackmd.io/_uploads/ryAzSovUWg.png)
![image](https://hackmd.io/_uploads/rkTNHsDLZx.png)
Thử dùng `collaborator` của burp để test ssrf nó có phản rồi về không. Nhưng không thấy.
![image](https://hackmd.io/_uploads/Bk6_SjvL-l.png)
Thử payload cơ bản `http://127.0.0.1:80` thì nó ra flag.

## Open Deepseek Database

![image](https://hackmd.io/_uploads/S1hnriPI-e.png)
Dùng `naabu` để scan port của `deepleak.bugbountymasterclass.com` thì ta được port `9000`.
![image](https://hackmd.io/_uploads/rk5JIiPIWe.png)
![image](https://hackmd.io/_uploads/Hy6yLsw8bg.png)

Scan với `nuclei` với `-tags Clickhouse` thì được 1 ra được 1 vulnerbility.

![image](https://hackmd.io/_uploads/ByaXIoPLbx.png)
![image](https://hackmd.io/_uploads/B1J4UsPI-l.png)
Tiếp tục dùng `curl` để truy vấn các cột của bảng.
![image](https://hackmd.io/_uploads/SJ-NLivUZx.png)
![image](https://hackmd.io/_uploads/B13SUowLWg.png)
![image](https://hackmd.io/_uploads/HypBLivUbe.png)

## Github Authentication Bypass on Major CRM

![image](https://hackmd.io/_uploads/Bydd8ov8Zg.png)
Dựa vào gợi ý thì ta tìm `bugbountymasterclass.com` trên github.
![image](https://hackmd.io/_uploads/Bk6_LsP8be.png)
![image](https://hackmd.io/_uploads/By2qUoDIbl.png)
![image](https://hackmd.io/_uploads/BJ698sv8Ze.png)
Vào history xem lịch sử của file `.env`.

## Breaking into a Major Bank
![image](https://hackmd.io/_uploads/SJFnIiwUbg.png)
![image](https://hackmd.io/_uploads/BJ32LowUbx.png)

Dùng `nuclei` scan `bank.bugbountymasterclass.com` với `-tags Springboot`.
![image](https://hackmd.io/_uploads/ByqywsPLbg.png)
![image](https://hackmd.io/_uploads/ryQevsP8Wx.png)
File `heapdump` là một bản chụp (snapshot) của bộ nhớ `JVM`. 
- `Credentials`: Mật khẩu database, API keys của bên thứ ba (AWS, Twilio, SendGrid...). 
- `Environment Variables`: Các cấu hình nhạy cảm mà dev thường giấu trong file .env hoặc hệ thống. 
- `Sensitive Data`: Thông tin người dùng, token phiên làm việc (session tokens) đang active.

![image](https://hackmd.io/_uploads/SyQmwowLbe.png)

## 0 Click Account Takeover via Cookie Switching

![image](https://hackmd.io/_uploads/r1WEviP8bg.png)
![image](https://hackmd.io/_uploads/SJQ4PoPLWx.png)
![image](https://hackmd.io/_uploads/HJ8VvovIbg.png)

Bài này thì ta làm việc với 2 domain `prod.router-resellers.bugbountymasterclass.com` `stage.router-resellers.bugbountymasterclass.com`.
Với `stage.router-resellers.bugbountymasterclass.com` thì ta có thể đăng nhập được với tư cách khách. Nhiệm vụ thì ta phải vào được `/dashboard` của `prod.router-resellers.bugbountymasterclass.com` bằng cookie.

![image](https://hackmd.io/_uploads/BkZe_oDIbx.png)

Đầu tiên ta lấy cookie của `stage.router-resellers.bugbountymasterclass.com/dashboard`
sau đó copy nó để phiên của `prod.router-resellers.bugbountymasterclass.com` với `Name:Value` tương ứng là `session:.eJw9y00LQ...`.
![image](https://hackmd.io/_uploads/HkId_sDUbl.png)
![image](https://hackmd.io/_uploads/ryt_dowIbx.png)
