
Twitter vulnerable snippets
Уязвимости | Языки программирования | Запуск уязвимого фрагмента кода | Установка | Обновление
YesWeHack представляет фрагменты кода, содержащие различные уязвимости, чтобы вы могли попрактиковаться в анализе кода в безопасном docker-окружении. Уязвимые фрагменты кода подходят для любого уровня подготовки.
~ Новый уязвимый фрагмент кода в Twitter @yeswehack каждую пятницу! 🗒
Если вы хотите увидеть что-то особенное или у вас просто есть идея насчёт уязвимого фрагмента кода, смело создавайте "New Issue" с описанием вашей идеи, любая идея не глупая.
⚠️ Будьте осторожны
Запускайте это только в безопасном окружении, так как код уязвим и предназначен для обучения анализу кода! По умолчанию все уязвимые фрагменты кода содержат docker-настройку, которая изолирует код от вашей основной системы и делает его безопасным для запуска (подробнее в разделе: «Запуск уязвимого фрагмента кода»).
Подборка всех уязвимых фрагментов кода, опубликованных в нашем Twitter 📂
Кроме того, включены
В папке каждого уязвимого фрагмента кода (Vsnippet) находится файл docker-compose.yml. Чтобы запустить Vsnippet в изолированном docker-окружении, просто выполните следующую команду:
docker compose up --build
или
docker-compose up --build
git clone https://github.com/yeswehack/vulnerable-code-snippets.git
Чтобы получить последние уязвимые фрагменты кода, выполните:
git pull
~ H4v3 y0u f0und th3 E4st3r 3gg y3t? 🐇🪺
По вопросам, за помощью или если вы обнаружили проблему с кодом, свяжитесь с нами в Twitter: @yeswehack 📬
| ID | Уязвимость | Описание |
|---|
| 📜#1 | SQLi & XSS | Конфликт фильтров с обратным слэшем |
| 📜#2 | Improper file access & XSS | Недопустимые символы и проверка регулярных выражений |
| 📜#3 | Log Forging injection, Path traversal & Code injection | Слабый фильтр и некорректная обработка include() |
| 📜#4 | XSS | Некорректный фильтр пользовательского ввода |
| 📜#5 | SSRF & Broken authorization | Доверенный пользовательский ввод и IP-адрес клиента из заголовка |
| 📜#6 | SSTI | Смешанный формат ввода |
| 📜#7 | SQLi | Использование недопустимой переменной в запросе |
| 📜#8 | CSRF | Отсутствует CSRF-токен |
| 📜#9 | Open Redirect | Некорректный обработчик регулярного выражения |
| 📜#10 | DOM XSS | Конфликт бэкенд-фильтра с клиентским JavaScript |
| 📜#11 | CORS | Неправильно настроенный заголовок Access-Control-Allow |
| 📜#12 | CSRF/ClickJacking | CSRF через GET-запрос с небезопасным процессом удаления / Кликджекинг — X-Frame-Options задан в HTML-метатеге |
| 📜#13 | Path Traversal/Unrestricted File Upload | Слабая защита от Path Traversal и загрузки файлов приводит к внедрению кода |
| 📜#14 | DOS | Некорректный оператор в цикле "for" |
| 📜#15 | Weak Password Recovery Mechanism for Forgotten Password | Слабый хеш для восстановления пароля |
| 📜#16 | IDOR | Небезопасный оператор if приводит к некорректному контролю доступа |
| 📜#17 | Insecure deserialization | Выполнение доверенного пользовательского ввода внутри функции pickle loads() |
| 📜#18 | Path Traversal | Некорректная проверка имени файла пользователем |
| 📜#19 | Open Redirect | Некорректная обработка управляемого пользователем ввода "location.hash" |
| 📜#20 | SQL injection | Некорректное использование функции replace() — символ заменяется только один раз |
| 📜#21 | PostMessage DOM XSS | Отсутствие проверки origin, что приводит к PostMessage DOM XSS |
| 📜#22 | XSS/OpenRedirect | Фильтр не отсекает все специальные символы, которые можно использовать для эксплуатации уязвимостей |
| 📜#23 | Buffer overflow | Приём пользовательского ввода из STDIN через функцию gets() без проверки размера буфера |
| 📜#24 | SQL injection | Некорректное использование PHP-функции addslashes() |
| 📜#25 | XSS - CSP bypass | Отсутствие проверки пользовательского ввода в сочетании с небезопасной обработкой nonce |
| 📜#26 | Path Traversal | Фильтр, реализованный PHP-функцией preg_replace(), ограничен фильтрацией только первых 10 символов |
| 📜#27 | Web Cache Poisoning | HTTP-заголовок Referer отражается в теле кэшированного ответа без фильтрации |
| 📜#28 | Business logic vulnerability | Злоумышленник может снимать отрицательные суммы, увеличивая общий баланс своего счёта |
| 📜#29 | IDOR | Злоумышленник может получить доступ к конфиденциальным данным других пользователей с помощью атаки Forced browsing |
| 📜#30 | Insecure deserialization | Использование опасной функции (exec), управляемой пользователем, что приводит к RCE |
| 📜#31 | LFI | Отсутствие корректного экранирования символов и проверки фильтров. Функция include() выполняет весь PHP-код в указанном файле независимо от расширения файла, что приводит к внедрению кода |
| 📜#32 | Format injection! | Форматирование строки, содержащей значения, предоставленные клиентом, приводит к инъекции формата |
| 📜#33 | SQL injection (second order) | Все SQL-запросы используют подготовленные выражения, кроме последнего. Этот запрос извлекает из базы данных значение, которое когда-то контролировалось пользователем, и добавляет его в SQL-запрос, что приводит к SQL-инъекции (второго порядка) |
| 📜#34 | Regular expression Denial of Service (ReDoS) | Неправильно настроенный regex-шаблон, используемый для фильтрации пользовательского ввода |
| 📜#35 | XSS | Доверенный пользовательский ввод в GET-параметре |
| 📜#36 | Unrestricted File Upload | Недостаточная проверка расширения загружаемого файла и отсутствие проверки содержимого файла |
| 📜#37 | SSRF | Небезопасная обработка прокси-заголовка X-Forwarded-Host и cURL, приводящая к полному SSRF |
| 📜#38 | Code injection | Пользователь может записать произвольное содержимое в выбранный файл, который затем запускается на уязвимой системе |
| 📜#39 | LFI | Эксплуатация LFI позволяет запустить инструмент pearcmd, что приводит к удалённому выполнению кода |
| 📜#40 | Unrestricted File Upload | Расширение php3 может использоваться для выполнения PHP-кода из-за конфигурации в Apache proxy. |
| 📜#41 | Command injection | Некорректное использование escapeshellcmd приводит к уязвимости внедрения команд |
| 📜#42 | Command injection | Проверка пользовательского ввода не выполняется, что приводит к уязвимости внедрения команд |
| 📜#43 | SSTI | Некорректное использование шаблонизатора приводит к SSTI, что в свою очередь приводит к RCE |