Step By Step CTF Web

 


v Dưỡi đây là một số file thường được thấy trong CTF, rất có nhiều ích lợi khi kiểm tra chúng:

Ø                     Robot.txt

Ø                 .htaccess

Ø                 sitemap.xml

Ø                 config.php

Ø                 readme

Ø                 Backup files

v Page Source:

Ø Phân tích code nguồn của cả trang web (ít nhất bạn cũng tìm được những điều liên quan đến challlenge). Hãy nhìn vào các dòng comments, hidden tag, disable tag, JavaScript Obfuscation

§  JavaScript Obfuscation: là hành động cố tình tạo mã bị lộn xộn để người đọc khó có thẻ hiểu code.

·      Kích thước mã sẽ được giảm

·      Ẩn logic nghiệp vụ và mã của bạn khỏi người khác

·      Kỹ thuật đảo ngược rất khó khăn

·      Trong JavaScript, thời gian tải xuống sẽ giảm

v Stegnography:

Ø Nếu có bất kỳ ảnh, video hoặc files được tìm thấy trên app web. Tải xuống và check xem có bất kỳ dấu vết thú vị nào không. Có thể dùng 1 số tool sau để tìm các nội dung ẩn trong các file:

§  Images(binwalk, exiftool, stegsolve)

§  Videos(TrueCrypt)

v Directory Busting:

Ø Các bài CTF thường không xác nhận việc bruteforce các server nhưng thỉnh thoảng bạn cần tra cứu 1 số các thư mục chung, thông thường. Có thể dùng dirb, wfuzz hoặc đơn giản là burpsuite. Ở một vài challenge, chúng ta cần phải tạo một từ điển riêng từ nội dung challenge website để bruteforce từ điển đó. Trong trường hợp này cewl là “bạn thân nhất của bạn :V”

v Vulnerability Scanning (Quét lỗ hổng):

Ø Thực hiện quét bằng cách sử dụng nikto hoặc nessus, biết đâu có điều gì đó thú vị

v WebDAV Methods

Ø Đưa cho chúng ta một lượng lớn các tiện ích được sử dụng để thao tác với các file trên web server. Với bản chất của chức năng, những thứ này có thể được truy cập bởi những người có đặc quyền thấp, họ có thể cung cấp con đường hiệu quả để tấn công một ứng dụng. Dưới đây là một số phương pháp để tìm kiếm:

§  PUT:tải lên các tập file đính kèm tới một địa chỉ cụ thể

§  DELETE: Xóa các tài nguyên cụ thể

§  COPY: Sao chép file bất kì tới một địa chỉ được ghi ở header địch (Destination header).

§  MOVE: Di chuyển file bất kì tới một địa chỉ được ghi ở header địch (Destination header).

§  SEARCH: Tìm một địa chỉ chứa tài nguyên.

§  PROFIND: Duyệt thông tin về các tài nguyên cụ thể, như là: tác giả, kích thước và loại nội dung.

v Request và Respone

Ø Chặn (Intercept) tất cả các request tới server. Cố gắng thay đổi các header http liên quan hoặc các tham số request và kiểm tra xem app respone như thế nào.

v LFI/RFI

Ø LFI/RFI là gì ?

https://viblo.asia/p/file-inclusion-vulnerability-exploit-4P856NMa5Y3

§  Gọi chung là File Inclusion Vulnerability. Xảy ra trong code php web, lập trình viên sử dụng các lệnh include, require, … cho phép file hiện tịa có thể gọi ra 1 file khác.

§  Dấu hiệu nhận biết: Đường link thường có dạng php?page=,hoặc php?file= .... Để biết trang web có bị lỗi này hay không ta chỉ cần thêm 1 dấu ' vào đường link , ví dụ như là php?page=' . Và trên trình duyệt sẽ có thông báo dạng

Warning: Warning: include() [function.include]: Failed opening ''' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\FI.php on line 40

ð  Nguyên nhân là khi sử dụng các lệnh trên, lập trình viên lại gọi các file cần mở thông qua biến. Các biến này chưa được khởi tạo hoặc do người dùng quyết định….

ð  Cụ thể sẽ có 1 bài tổng hợp về các lỗ hổng sau.

Ø Tìm chuỗi truy vấn (query string) hoặc các tham số post (page=, url=, lang=,…) nó có thể chứa các file khác trong web page. Nếu LFI tồn tại và bản PHP >= 5.0.0 thì thử dùng tài nguyên php để lộ ra (disclose) code ở server side.

Ø Nếu LFI/RFI tồn tại và PHP>=5.2.0 với tham số allow_url_include ON. Thử phương pháp data stream để thực thi shell trên server.

§  Tạo php shell payload.

§  Base64 encode

§  url encode

index.php?file=data://text/plain;base64,"encoded shell"

 

https://twisted-fun.github.io/2018-05-20-step-by-step-ctf-web/



1 Comments

Previous Post Next Post