https://help.offensive-security.com/hc/en-us/articles/360050299352 ### Exam Restrictions - Các tool analyze source tự động - Automatic exploitation tools (e.g. db_autopwn, browser_autopwn, SQLmap, SQLninja etc.) - Mass vulnerability scanners (e.g. Nessus, NeXpose, OpenVAS, Canvas, Core Impact, SAINT, etc.) - Features in other tools that utilize either forbidden or restricted exam limitations - Remote mounting of application source code is not allowed (e.g. using sshfs, sftp etc.) - Cấm copy source dưới mọi hình thức, được chụp ảnh với đoạn code để làm report thoải mái ### Exam Connection 1. tải file `exam-connection.tar.bz2` 2. giải nén file: ```bash tar xvfj exam-connection.tar.bz2 ``` 3. kết nối ``` sudo openvpn OS-XXXXX-OSWE.ovpn # password và username gửi trong email ``` ### Point Allocation - 85 -100 ### Submission Checklist - [ ] Report phải ở dạng pdf - [ ] Tên file phải follow format `OSWE-OS-92089-Exam-Report.pdf` - [ ] PDF phải được nén bằng 7z tên file sau khi nén `OSWE-OS-92089-Exam-Report.7z` - [ ] Dung lượng file không quá 300M - [ ] Upload file report trên https://upload.offsec.com ### Submission Format and Name - [ ] Kiểm tra lại mọi thứ trước khi upload - [ ] Kiểm tra md5 local và sau khi upload `md5sum OSWE-OS-92089-Exam-Report.7z` - [ ] Đăng nhập: https://upload.offsec.com/ ------------------------------------------------------------------ #### Exam - Đươc cung cấp 5 box, - Kali VM (dùng để exploit - network sẽ nhanh hơn với các lỗi sqli timebase) - 2 box y chang box thật để debug (nhưng ko có bot auto trigger với các lỗi xss, csrf - bù lại sẽ có username, password để mình tương tác với db, như thay đổi pass admin :D ). mình có thể connect đến 2 box này bằng ssh, và cả rdpdesktop (delay 2s cho mỗi click). môi trường remote debug đã được offsec setup sẵn trên vscode trên box này, ae chỉ cần debug thoai - 2 box thật chứa flag cần exploit và lấy poc. ### Main Objectives: 1. xác định lỗi đầu tiên -> cung cấp giải thích (deep) + screenshot của đoạn code dùng để bypass authen -> (admin UI) 2. screenshots Burp, browser của việc log in thành công và access đến admin UI nơi có chứa local.txt 3. tương tự với proof.txt 4. screenshots chứa local.txt và proof.txt 5. **single functional script** exploit cả 2 bugs (không user interaction) 6. Via the script, the contents of local.txt must be extracted và được in ra màn hình 7. Provide written step-by-step documentation of the exploitation process - Authentication bypass with local.txt: 35 - Remote code execution with proof.txt: 15 ### Gen report sử dụng tool https://github.com/noraj/OSCP-Exam-Report-Template-Markdown để gen từ note markdown ### Check list #### Auth Bypass - [ ] SQL Injection - [Payloads](https://portswigger.net/web-security/sql-injection/cheat-sheet) - [ ] Persistent Cross-Site Scripting - [ ] IDOR - [ ] Weak random token generator (kiểm tra chức năng forgot pass + remember me, xem cookie) - [ ] Type Juggling (`==`, `&&`) - [ ] Cross-Site Request Forgery - [Payloads](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/CSRF%20Injection/README.md#html-get---no-user-interaction) - [ ] Authentication Token/Cookie Manipulation - [ ] Deseralization (ex: changepass admin) - [ ] Local file read via LFI/SSRF/XXE - [ ] Leak credentials via js... - [ ] Misconfiguration (.git, .svn) - [ ] prototype pollution #### RCE - [ ] Deserialization - [ ] Bypass File Upload Restrictions - [ ] SQLi RCE (Postgres UDF, Mysql copy function, mssql xpcmd_shell) - [ ] XML injection - [ ] SSTI - [ ] Prototype Pollution NodeJS - [ ] JavaScript injection - [ ] OS command injection - [ ] LFI ### Hướng làm bài: #### Bypass authen - Đầu tiên cần xem qua các chức năng bằng giao diện, sử dụng năng lực ngoại cảm =))) note lại toàn bộ endpoint, chức năng có thể access được bằng đường public hoặc user authen. - Tiến hành test sơ bộ các lỗi với các cú pháp đơn giản với kinh nghiệm sẵn có. có lỗi thì tốt ko có thì mình đọc code. Đọc code thì bắt đầu đọc từ route, từ route đọc tiếp các route đã note ở bước 1 -> kiểm tra các lỗi. (đoạn này kiến thức đòi hỏi ae cover rộng tí, chứ ko dễ bị miss bug) code được code theo mô hình MVC nên khá dễ đọc. - đọc code, tìm bug, chain vài bug lại -> bypass authen, truy cập trang admin, flag sẽ nằm ngay đấy. #### RCE - Kiểm tra các chức năng mà chỉ admin có, đọc code liên quan đến các phần này -> exploit #### Code poc - Sử dụng ngôn ngữ bất kỳ, yêu cầu sẽ được note vào ngày thi. đại khái với 1 script ae phải exploit xong phần bypass authen -> in flag ra terminal, -> exploit RCE. Reverse shell ae có thể dùng nc để hứng, ko cần code nguyên module http server, nhưng các lỗi xss thì phải code server để hứng cookie. ### Nguồn tham khảo - nhiều quá ko list hết - https://sarthaksaini.com/2019/awae/xss-rce.html - https://klezvirus.github.io/Advanced-Web-Hacking/ - CTF, làm xong nhớ note lại có lúc cần dùng tới