# [HTB] Templated Writeup ## Giới thiệu ![](https://hackmd.io/_uploads/H16s6byRh.png) Một web challenge đập vào mắt không có gì ngoài dòng chữ đang xây dựng :))))) Có cho mình thêm một dòng thông tin dùng Flask/Jinja2 Nên là mình sẽ đi mò và kiếm thứ hay ho liệt kê ra ## Đối tượng 1. Template: Flask/Jinja2 2. Server: Werkzeug/1.0.1 Python/3.9.0 ![](https://hackmd.io/_uploads/rys2TZ103.png) ## Vọc vạch Mình có ngồi search về Werkzeug/1.0.1 thì nếu server này có bật debug thì sẽ có endpoint /console cho mình nhưng kết quả khi mình gửi request thì không thấy gì ![](https://hackmd.io/_uploads/BkO66ZJRh.png) Mình sẽ thử bruteforce xem thử có còn bất kì endpoint nào khác nữa không ![](https://hackmd.io/_uploads/SkgAa-JAn.png) Nhưng mà có một điểm chung là nó sẽ lấy endpoint đó và hiện ra ngoài trang response ![](https://hackmd.io/_uploads/ryOR6-103.png) Nên mình nghi ở đây mình sẽ có thể inject script được. Ở đây dùng template Flask/Jinja2 nên mình sẽ mò thử vài payload xem thử có work không ![](https://hackmd.io/_uploads/rkW1CbkA3.png) Đúng như mình nói thì nó work thật mọi người ạ. Vậy thì lên mạng kiếm vài payload mẫu để RCE thoi [reference]: https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection/jinja2-ssti Ở đây mình có kiếm được một payload [này](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection/jinja2-ssti#:~:text=config.__class__.from_envvar.__globals__.__builtins__.__import__(%22os%22).popen(%22ls%22).read()) ``` {{config.__class__.from_envvar.__globals__.__builtins__.__import__("os").popen("ls").read()}} ``` Gửi request với payload đó để kiểm tra xem ăn không nhá ![](https://hackmd.io/_uploads/HkxkxA-k0h.png) Ăn luôn ạ. Vậy thì đọc file flag và lụm cái lab thoi ![](https://hackmd.io/_uploads/B1_x0W1Ch.png) Tưởng sẽ đọc ra nhưng lại không hiện gì cả, nên đành phải dùng một payload khác cũng trong link mình gửi để đọc file ``` {{request.__class__._load_form_data.__globals__.__builtins__.open("flag.txt").read()}} ``` và cuối cùng cũng đọc được flag ![](https://hackmd.io/_uploads/Hyb-AW1Ch.png)