Connect with us

Khoa Học - Công Nghệ

Sự nguy hiểm của thư mục .git

Sự nguy hiểm của thư mục .git

Published

on

Bạn đã bao giờ thử duyệt đến đường dẫn http://yoursite.com/.git/ chưa? Nếu bạn gặp lỗi 403, thì đó là điều bình thường. Bởi vì tính năng duyệt thư mục đã chặn truy cập này, đây là tính năng bảo mật cơ bản. Tuy nhiên, nhiều file trong thư mục .git/ vẫn có thể truy cập được. Vậy nên nó cực kỳ nguy hiểm, trong bài này, mình sẽ demo cách khai thác thư mục .git cho các bạn xem nhé.

Sự nguy hiểm của thư mục .git

Bất kỳ ai cũng có thể sử dụng các công cụ quét tự động như githacker để tải mã nguồn của bạn và xem toàn bộ lịch sử git. Git cũng là một hệ thống file tuân theo một số quy tắc, nên bạn rất dễ đoán các thư mục và file.

Hầu hết các dự án sử dụng masterhoặc mainlàm nhánh chính, nên bạn có thể dễ dàng đoán được đường dẫn ẩn trong thư mục /.git/. Công cụ này thậm chí còn có thể brute force các nhánh và tag.

Nếu quá trình quét thành công, bạn sẽ nhận được thư mụcresulttrên máy của mình (bạn có thể tùy chỉnh tên thư mục bằng tùy chọn --output-dir).

Không deloy hoặc chặn truy cập thư mục .git

Thư mục .git/có thể chứa rất nhiều thông tin, bao gồm cả mã nguồn cũng như tên, email và trong trường hợp xấu nhất là thông tin xác thực được mã hóa (ví dụ: cơ sở dữ liệu, token, key).

Advertisement

Bạn nên chặn hoàn toàn quyền truy cập công khai vào thư mục đó. Các giải pháp triển khai và CI/CD hiện đại tương đối dễ cấu hình và có thể xóa các thư mục không liên quan gì đến môi trường production.

Một số nhà cung cấp dịch vụ lưu trữ web (hosting) cũng chặn quyền truy cập vào thư mục này vì lý do bảo mật, nhưng không phải lúc nào những nhà cung cấp này cũng làm vậy và đó không phải là cấu hình mặc định. Vậy nên bạn cần kiểm tra kỹ cấu hình hệ thống trước khi deloy bất cứ thứ gì.

Bạn có thể thực hiện các giải pháp dưới để hệ thống của mình được an toàn hơn:

Tắt truy cập công khai thư mục .git/ theo mặc định

Thêm rule cấm truy cập vào thư mục trong mã nguồn, ví dụ: tệp cấu hình Apache .htaccess

Advertisement

Không triển khai các thư mục như vậy trong các thư mục chung

Nên trả về 404 cho thư mục.git/trong cấu hình máy chủ hoặc file .htaccess:

Bạn nên thêm cả hai rule nếu có thể, như hai lớp bảo mật. Trong trường hợp có người sửa đổi.htaccessvà xóa rule, thì vẫn còn rule dự phòng trong thư mục .git/. Nhưng theo mình được biết thì việc sử dụng file .htaccess sẽ làm chậm máy chủ Apache http.

Demo cách khai thác thư mục .git

Mình tạo 2 máy ảo là Ubuntu (Server) và Kali (Attacker). Trong máy server, mình sử dụng nginx để làm webserver, Mình tạo file index.php và commit lần đầu lên git.

Sau đó tạo file conn.php chứa mật khẩu là dữ liệu nhảy cảm và add file này vào git rồi stash thay đổi này lại.

Khi truy cập đường dẫn .git thì chúng ta sẽ bị chặn do cơ chế bảo mật của nginx.

Đó là setup cơ bản trên máy server. Giờ chúng ta sẽ tiến hành khai thác thử lỗi này.

Trên kali, các bạn chạy lệnh sau để cài đặt GitHacker:

Như các bạn thấy ở ảnh dưới, gitHacker sẽ được cài đặt trong đường dẫn /home/user/.local/bin.

Các bạn truy cập đường dẫn này và chạy lệnh. Thay IP-SERVER bằng ip của máy server của bạn.

Truy cập vào thư mục result, bạn sẽ thấy commit của server.

Kiểm tra log và stash.

Khôi phục lại stash đã lưu trước đó và chúng ta sẽ có file conn.php.

Vậy là mình đã khai thác thành công, đừng vì chút tiện lợi để pull repo trên production mà deloy luôn thư mục .git nhé.

Advertisement
Continue Reading
Advertisement
Click to comment

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Copyright © 2023 - Website is developed and provided by MMG GLOBAL CO.,LTD