Hackthebox - Template

Hello mọi người, lại là mình đây, dạo gân đây khá là nghiện hackthebox nên là yeah, mình sẽ tiếp tục giải hackthebox nha. Và bài hôm nay sẽ nói về một lỗ hổng khá là hay. mọi người hãy đón xem nha 

Đầu tiên chúng ta sẽ có 1 cái web như này: 


Nhìn qua web ta có thể thấy là web khá đơn sơ, nhưng ta lại thấy ngay trên giao diện web có dòng: "Proudly powered by Flask/Jinja2". Mình ngồi search google một lúc thì phát hiện ra Flask/Jinja2 có chứa lỗ hổng bảo mật, cụ thể là lỗi SSTI (Server Site Template Injection), các bạn có thể đọc thêm về lỗi này tại đây. Và mình nhập một payload khá là cơ bản của SSTI: {{4*4}} và kết quả:


Rõ ràng chúng ta đã biết rằng 4*4 = 16, và khi ta nhập {{4*4}} thì ta thấy hiện lên số 16 như ở trên hình (bạn thử nhập cái khác tương tự nó cx sẽ hiện như vậy). Đến bước này ta đã chắc chắn rằng web dính SSTI, và bây giờ ta sẽ khai thác sâu hơn. Tại đây mình sẽ chèn payload check id của machine thông qua lỗi SSTI: {{request['application']['__globals__']['__builtins__']['__import__']('os')['popen']('id')['read']()}} và kết quả:


Ồ và ta có thể thấy người dùng hiện tại là root, và từ đây ta có thể dễ dàng độc flag.txt: {{request['application']['__globals__']['__builtins__']['__import__']('os')['popen']('cat flag.txt')['read']()}}

Flag: HTB{Do_it_yourself}








Nhận xét

Bài đăng phổ biến