Я читал о XSS, и я сделал простую форму с текстом, и отправьте вход, но когда я выполняюсь <script>alert();</script>
на нем ничего не происходит, сервер получает ту строку, и это - все.
Для чего я должен сделать, делают это уязвимым?? (затем я изучу то, что я не должен делать hehe),
Удачи.
В самом деле, просто позвольте серверу выводить его так, чтобы входная строка эффективно встраивалась в исходный HTML-код, который возвращался клиенту.
Пример PHP:
<!doctype html>
<html lang="en">
<head><title>XSS test</title></head>
<body>
<form><input type="text" name="xss"><input type="submit"></form>
<p>Result: <?= $_GET['xss'] ?></p>
</body>
</html>
Пример JSP:
<!doctype html>
<html lang="en">
<head><title>XSS test</title></head>
<body>
<form><input type="text" name="xss"><input type="submit"></form>
<p>Result: ${param.xss}</p>
</body>
</html>
В качестве альтернативы вы можете повторно отобразить значение во входных элементах, что также часто встречается:
<input type="text" name="xss" value="<?= $_GET['xss'] ?>">
соотв.
<input type="text" name="xss" value="${param.xss}">
Таким образом, "странные" строки атаки, такие как К решениям по предотвращению XSS относятся, среди прочего, "/>
htmlspecialchars ()
и fn: escapeXml ()
для PHP и JSP соответственно. Они заменят среди прочих <
, >
и "
на <
, >
и "
, так что ввод конечного пользователя не оказывается буквально встроенным в исходный код HTML, а вместо этого просто отображается в том виде, в котором он был введен.
Вы должны «внедрить» скрипт. Итак, если у вас есть текстовый ввод, вы должны ввести форму:
" /> <script>alert();</script>
Таким образом вы сначала закрываете атрибут существующего HTML, а затем вводите свой собственный код. Идея состоит в том, чтобы избежать кавычек.
Три простые вещи:
Дополнительная информация с примерами в OWASP Top 10 для разработчиков .NET, часть 2: Межсайтовый скриптинг (XSS) .
Google сделал действительно потрясающее руководство, которое охватывает XSS и другие уязвимости безопасности здесь . Это может помочь вам понять, как эти проблемы используются в реальных приложениях.