# [HTB] TwoDots Horror Writeup ## Giới thiệu :::info tadaa, đây lại là một lab viết bằng Nodejs, mở source ra thì cũng khá nhiều LOC và file ấy, nên có lẽ sẽ tốn kha khá thời gian cho việc nắm hết cách app work ::: ![](https://hackmd.io/_uploads/SkCbWGyA3.png) Bài này có một cái khá thú vị là sau khi register rồi login rồi ấn cái nút submit thì lại xóa db từ đầu :)))))) tốn thời gian hơi bị nhiều để vọc ấy. ## Đối tượng và mục tiêu 1. Mục tiêu 1. Phải lấy được cookies của admin vì đó là flag mà mình cần 2. Đối tượng đáng ngờ 1. check lib thì nunjuck version này có 1 bug đó là [PP](https://security.snyk.io/vuln/SNYK-JS-NUNJUCKS-1079083) 2. check lib is-jpg thì mình lại thấy ở ver2 này code khá sơ sài khi chỉ check đúng các mã header (có thể craft một jpg giả chứa script trỏng) ![](https://hackmd.io/_uploads/BJsz-MJRn.png) Nếu như đọc sơ thì mình sẽ thấy khả năng là mình phải đưa được một đoạn script để lấy cookie để khi bot mở trang review thì đoạn code đó thực thi mang flag về cho mình, đấy là hướng đi mà mình có thể nghĩ ra ở hướng hiện tại. ## Thực hiện Theo như đối tượng 2b mà mình nói ở trên thì mình có thể tạo ra một script nhét ở trong ảnh, mình có đọc được bài của trang này. ([bypass CSP by polygot JPEGs](https://portswigger.net/research/bypassing-csp-using-polyglot-jpegs)) Và mình có kiếm ra được repo để giúp mình gen ra ảnh một cách nhanh chóng không cần phải ngồi tính lại size của ảnh [link repo imgjs polygloter](https://github.com/s-3ntinel/imgjs_polygloter) Nhưng vấn đề là gen code thì làm sao để nó excute. hmmmmmmm Sau một hồi dài mình ngồi mò trên stackoverflow thì cũng có chút kết quả khả quan - [stackoverflow Stop nunjucks from escaping html](https://stackoverflow.com/questions/29866034/stop-nunjucks-from-escaping-html) - [nunjucks document](https://mozilla.github.io/nunjucks/templating.html#safe) ![](https://hackmd.io/_uploads/ryuQZG1A2.png) Kèm theo document nữa thì mình có thể tạo một tag html ở đây. Tới đây thì mình có thể nghĩ ra là mình sẽ submit lên một tag html để gọi tới đoạn script mình up bằng ảnh, và mở trong trang review để lấy cookie và đưa ra ngoài. Tới đây thì mình sẽ craft thử một script xem chứ nãy h lí thuyết hơi nhiều gòi :)))) ![](https://hackmd.io/_uploads/SJzV-fyCh.png) và upload thôi ![](https://hackmd.io/_uploads/SJ24WzJ0n.png) Bây h mình sẽ tạo một tag html để gọi tới script (là link bức ảnh) mà mình vừa upload ![](https://hackmd.io/_uploads/HkrHZzkA2.png) cần phải có 2 dấu chấm để bypass validation code ![](https://hackmd.io/_uploads/BkpH-zyRn.png) mà html trên thì cũng có craft như trong link trên mình đưa nên cứ thử theo thôi :)))) ![](https://hackmd.io/_uploads/B1r8-MJCn.png) tada ăn luôn, vậy xong luôn :)))))))