Hãy để việc fuzzing đơn giản hơn với Nuclei

Tram Ho

Intro

Dạo gần đây mình hay sử dụng các tool tự động recon khai thác các lỗi, phần vì để đơn giản hoá, phần vì mình đỡ bỏ qua các lỗi cơ bản không đáng có, nhất là với lượng sub-domain khá lớn, hay scope rộng của các program.

Trong khoảng thời gian tìm kiếm tools tự động có thể đơn giản hoá việc recon website thì người anh ngồi cạnh mình suggest cho mình một tool khá hay. Nuclei

Vậy tại sao mình lại viết bài này, mình thấy Nuclei khá hay, có nhiều module, có thể custom rules thoải mái, …
Một số thông tin về Nuclei:

Cài đặt Nuclei

Việc cài đặt vô cùng đơn giản và không hề phức tạp, có hẳn 3 cách để cài đặt Nuclei lên VPS của bạn (ở đây mình sử dụng VPS vừa đỡ tốn điện vừa tiện chạy recon trên đó đỡ ảnh hưởng phần cứng máy thật):

Cách 1: Cài đặt sử dụng binary

Cách 2: Cài đặt lấy trực tiếp từ source

Nuclei yêu cầu cài đặt go1.14 trở lên, sau khi các bạn cài go1.14+ thì chạy 1 command này là có thể sử dụng nuclei rồi

Cách 3: Cài đặt vẫn là từ source, nhưng bằng cách khác

Cài đặt xong rồi, tuy nhiên chúng ta chưa sử dụng nuclei được ngay đâu, nuclei chạy được khi sử dụng rules, tuy nhiên nuclei có hỗ trợ các templates có sẵn tải về bằng cách

hoặc có thể download từ Github

Khởi chạy Nuclei

Có khá nhiều cách sử dụng Nuclei, các bạn có thể tìm hiểu thông qua --help nhé, ở đây mình hướng dẫn sử dụng cơ bản thôi ^^;

Chạy Nuclei với 1 template

Ví dụ chúng ta có 1 list domain, chúng ta cần kiểm tra xem trong list domain này có cấu hình lỗi thư mục .git hay không, chạy lệnh

với

  • urls.txt tổng hợp list domain cần test
  • files/git-core.yaml là file template kiểm tra
  • results.txt là file xuất ra kết quả sau này kiểm tra lại.

Chạy Nuclei với toàn bộ templates

Đây là cách mình hay sử dụng, chạy toàn bộ luôn, thà giết nhầm còn hơn bỏ sót, chạy toàn bộ hình như là khoảng 350 cái template thì phải, cũng hay được update template, bạn có thể đọc log trên trang chủ.

Chạy Nuclei với tính năng loại trừ template

Chạy template dựa theo mức độ nghiêm trọng

Với câu lệnh này nuclei sẽ chỉ chạy những template được đánh dấu mức độ nguy hiểm là critical và medium mà thôi.

Chạy toàn bộ template nhưng loại trừ một vài thư mục

Còn rất nhiều tính năng của nuclei đang chờ bạn khám phá nhé

Viết template cho Nuclei

Ở đây chúng ta sử dụng 1 template có sẵn của Nuclei tìm kiếm các lỗi directory traversal

Ở đây chúng ta có thể thấy được, template này được chia ra làm 3 phần

  • Phần 1: chỉ rõ tên id của template này directory-traversal
  • Phần 2: Ở đây viết toàn bộ thông tin liên quan đến lỗ hổng này, tên là gì, người viết là ai, mức độ nguy hiểm ra sao, mô tả lỗ hổng thế nào
  • Phần 3: Phần này là phần quan trọng nhất, nó sẽ chỉ cho Nuclei chạy các request như thế nào, khi trả về kết quả như thế nào thì xác định được đấy đúng là lỗi, …

Toàn bộ hướng dẫn viết template của nuclei có tại https://nuclei.projectdiscovery.io/templating-guide/, hi vọng các bạn viết được các template thật hay để contribute cho nuclei nhé

Kết quả

Một số lỗ hổng mình đã tìm được khi sử dụng Nuclei


Command mình hay sử dụng là

Tham khảo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo