One request, one kill

Một thời gian trước đây mình có đọc được một write-up của anh @ngalog, một cao thủ bug bounty, hay target vào Uber, Gitlab,… Anh ấy nói rằng trung bình một ngày anh ấy đọc khoảng 15 nghìn request để có thể tìm được bug. Nghe mà choáng. Trước giờ số request cao nhất của mình chỉ vào khoảng 3 nghìn, tuy nhiên đã có một số lớn request đến từ detectportal.firefox.com rồi.

Nhưng mà nói đi cũng phải nói lại, đôi lúc để hack một website không cần nhiều request đến vậy. Mình đã gặp ít nhất là 2 cases, mỗi case mình chỉ cần 1 request là đã có thể compromise được server. Tất nhiên đó chỉ là may mắn, bởi vì để có được 2 cases thành công, ai biết được mình đã thất bại trong bao nhiêu case khác? Hì hì, nhưng mà, mình có đọc được ở đâu đó, chắc là trong đống truyện tiên hiệp huyền huyễn, rằng “may mắn cũng là một loại thực lực”. Thôi thì cứ tin như vậy đi, cho cuộc đời nó tươi đẹp, nhỉ 😀

Các case mình chia sẻ dưới đây có thể được phân loại vào dạng “Information Leakage”. Có nhiều loại leakage, và impact của các loại này cũng khác nhau. Có loại thì sẽ dẫn đến compromise cả server, có loại chỉ show ra sensitive information nhưng không ảnh hưởng nhiều đến hệ thống. Tuy nhiên nhìn chung, information leakage là một loại lỗi cần tránh. Hacker hoàn toàn có thể hack cả server, chỉ cần dựa vào những thông tin tưởng chừng như vô hại này.

Một ngày đẹp trời, khoảng gần hai năm trước, trên twitter xuất hiện một tweet khá hay. Uhm, Laravel à. Ngay lập tức mình nhớ đến một website “quen biết” cũng dùng Laravel. Thử một request đến https://thatwebsite.com/.env, kết quả trả về làm mình thật bất ngờ…

Với những credential này, tại thời điểm đó mình có thể login vào một hệ quản trị của server, và chạy được command. Không có gì phức tạp, nhỉ. Đương nhiên, vì không có gì phức tạp nên cũng không có bounty :'(

Case thứ hai là một case bug bounty mình đã gặp cách đây khoảng nửa năm. Khi biết target chạy WordPress thì suy nghĩ đầu tiên trong đầu mình là: thôi RIP rồi, WordPress thì làm ăn gì được đây 🙁 Tuy nhiên lúc đó, không hiểu ma xui quỷ khiến thế nào, mình ngứa tay chọc thử https://domain.com/.git

Mà truy cập vào được folder .git nghĩa là bạn có thể download toàn bộ source code của website, bằng cách dùng hai command dưới đây:

$ wget --mirror -I .git https://domain.com/.git/
$ git checkout -- .

Kết quả là…

Đương nhiên, site chạy WordPress thì mình cũng nên đọc wp-config.php cho đúng quy trình:

Thôi đến đây thì nên submit thôi 😀 Happy hacking!