BroScience


Enumeration

Zenmap:



Zenmap liệt kê 3 cổng: 22, 80,443. Thấy rằng sitename là broscience.htb, tôi thêm vào C:\Windows\System32\drivers\etc:



Gobuster:


 
Dạo một vòng website, trong đường dẫn https://broscience.htb/includes/:



Kiểm tra các đường link, tôi thấy img.php:



Đây có thể là tiền đề cho một lỗ hổng LFI (File Inclusion Vulnerability), khai thác và kết quả nhận được:

 

Không may mắn lắm, dường như server có một lớp bảo về chống lại việc tấn công này. Tôi thử mã hóa urlencode để bỏ qua lớp bảo vệ này:



Kết quả không đáng mong đợi lắm, thử tăng thêm 1 lớp mã hóa nữa xem thế nào và:



Có vẻ là khá đơn giản, tôi đã bỏ qua thành công được lớp bảo vệ. Thực hiện tương tự với các file còn lại tôi thu được:

Trong register.php khi tạo tài khoản đã gọi tới function generate_activation_code() trong utils.php để tạo mã active tài khoản, sau đó call tới:   để kích hoạt tài khoản.

 

Tạo tài khoản:



Trong response ta thấy thời điểm kết quả trả về, tạo mã active bằng cách thay time() bằng strtotime(), với date là thời điểm trả về:



Bây giờ tôi đã có mã kích hoạt, kích hoạt tài khoản:


 Login vào website:


Sau khi login tôi thấy có một Cookie mới user-prefs, Cookie này thay đổi khi sử dụng swap_theme.php.

 

Trong swap_theme.php đã gọi tới function get_theme() và set_theme() trong utils.php:

 

Tôi nhận ra mình có thể sử dụng lỗi hổng Serialization trong đoạn code trên, điều quan trong làm tìm được đối tượng để tiêm và tuần tự hóa, trong utils.php có một đối tượng để giúp tôi thực hiện điều này:

 

Sử dụng <IP> và <PORT> của mình và thực thi đoạn mã trên tôi nhận được:


Shell

File payload shell.php:

Mở port 4444 để thực đẩy payload lên server:


Thay thế giá trị Cookie user-prefs bằng giá trị mới tạo và reload lại website tôi thấy payload của mình đã được tải lên server.

Mở cổng lắng nghe và đợi reverse shell:


Tôi đã nhận được shell:



 Trong file db_connect.php tôi tìm thấy thông tin đăng nhập db. port 5432 được mở, đây là port default của postgresql db. Kết nối db với shell tôi vừa nhận được:


 Tôi cố gắng khôi phục lại pass của các user trên, nhưng password được tạo ra bằng cách md5($db_salt . $_POST['password']), Nên đầu tiên tôi tạo lại file từ điển bằng cách thêm "NaCl" vào đầu mỗi từ:


File hash.txt:


 Crack pass:


 Loại bỏ NaCl và thử login với ssh từng tải khoản tôi đã đã thành công login vào tài khoản bill:

 

 



 

 



 

 

 







Dryu8

Dryu8 is just a newbie in pentesting and loves to drink beer. I will be happy if you can donate me with a beer.

Post a Comment

Previous Post Next Post