Exp9 инфраструктура веба-безопасности
ответил Основные вопросы:
-
SQL Injection атак, как защитить?
-
Атаки инъекции SQL вставляется с помощью команды SQL в веб-формы или введите запрос доменного имени запроса строки или страницы, и в конечном счете достичь цели обмана сервера для выполнения вредоносных команд SQL.
- Для предотвращения атак SQL инъекций, в основном, я думаю, мы должны исходить из кодекса:
- Использование PreparedStatement прекомпилировано набор утверждения, которое построило способность обрабатывать инъекции SQL, до тех пор, как традиционный метод использования его SetXXX значения. Он работает только готов к отчетности инъекции SQL SQL (компиляция) процесс имеет пагубные последствия, и PreparedStatement готов, но фаза выполнения входной строка, как обработка данных, а не разбор подготовки SQL заявления и, следовательно, избежать проблем SQL-инъекции;
- Использовать регулярные выражения для фильтрации входящих параметров, некоторые ключевые слова, которые содержат SQL фильтрации для инъекций;
- Метод фильтрации строк;
- JSP вызвать эту функцию, чтобы проверить наличие недопустимых символов, чтобы предотвратить URL от SQL инъекций.
-
-
Принцип XSS нападение, как защитить?
- XSS является инъекции кода, который позволяет злоумышленнику внедрить код в страницу, и может быть успешно реализован браузер, другие пользователи будут затронуты при просмотре веб-страниц. Такие атаки часто содержат HTML и язык сценариев на стороне пользователя. Основные целью атак XSS, чтобы найти способы, чтобы получить цель куков атаки сайтов, из-за печенья эквивалентного иметь seesion, С этой информацией вы можете быть в состоянии подключиться к Интернету ПК в любом месте посадки, а также в других идентичности людей войти и сделать некоторые повреждения.
- XSS защита могут быть следующие два аспекта:
- Первый метод является заполнение формы или URL передачи параметров, параметров фильтра необходимо;
- Проверьте ввод нелегального содержания пользователя, такие как угловые скобки, кавычки и так, строгий контроль выходного сигнала.
3.CSRF Приступы, как защитить?
- Мы знаем, что XSS является кросс-сайт скриптинг атаки, сценарий злоумышленника выполняется в браузере пользователя, чтобы получить их печенье и другую информацию. CSRF заимствован идентификатор пользователя, отправить запрос на веб-сервер, потому что запрос не намерение пользователя, так называемый «запрос межсайтовое подделкой.»
- Для CSRF защиты также можно исходить из следующих аспектов:
- По реферер, маркер или код аутентификации, представленный пользователем обнаружено;
- Старайтесь не предоставлять информацию пользователя о конфиденциальности на странице ссылки для пользователей, чтобы изменить или удалить лучшую работу после использования;
- Избегайте родовое печенья всей станцию, строгий набор доменное печенья.
Методика эксперимента:
А, конфигурация Webgoat
Введите https://github.com/WebGoat/WebGoat/releases/tag/7.0.1 сайт
Скачать Webgoat-контейнер-7.0.1-войны exec.jar
Ввод Webgoat-контейнера 7.0.1-война exec.jar - смонтированная банка пакет Java -jar
Осмотрев красный прямоугольник на карте , чтобы открыть браузер для входа в информационную Http: // локальный: 8080 сайт / Webgoat.
Два нападения инъекции SQL (Инъекции изъяны)
1. Команда впрыска (Command Injection)
- Выберите Injection Дефекты -> Command Injection
правой странице окно, выберите инспектировать Element обзор элементов страницы , чтобы изменить исходный код, добавил в конце"& netstat -an"
- Нажмите, чтобы посмотреть, увидеть адреса использования сетевого порта и IP, атака успешна
2. Вход обманывать (Log Подмена)
-
- 选择 Инъекции Дефекты -> Журнал Подмена
- Введите имя пользователя расслоения плотного
%0d%0aLogin Succeeded for username: admin
использования 0D% (Enter) и% 0A (строки) журнал появится в двух строках - После ввода любой пароль и нажмите кнопку Вход, успех будет добавлять имя пользователя в файл журнала.
3.SQL инъекции (LAB: SQL Injection)
этап 1: String инъекции SQL
-
- Выберите Дефекты Injection -> Строка SQL Injection, правая страница пароль для ввода пароля, выберите инспектировать Element обзор элементов страницы, чтобы изменить исходный код, максимальный предел длины был изменен на 20
-
- Невилл Логин пользователя, пароль
Smith' or '1' = '1
- Атака успешна, список всех сотрудников
- Невилл Логин пользователя, пароль
4. Слепые инъекции SQL (Слепой Числовой SQL-инъекция)
- Информационный сервер возвращает страницу двумя способами: действительный счет, счет не является действительным, и , следовательно , не может просто запросить счет значения PIN - кода. Но вы можете использовать систему в фоновом режиме с запросом ,
SELECT * FROM user_data WHERE userid=accountNumber;
если возврат информацией учетной записи, страница будет запрашивать счет действителен, в противном случае приглашения недействительна. - Введите
101 AND 1=1
страницу возвращает действительный номер счета
-
-
Введите
101 AND 1=2
второе условие не выполняется, то страница возвращает неверный номер счета
-
-
-
Input
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
страница возвращает неверный номер счета, описание PIN <= 10000
-
-
- Несколько попыток ввести, введите
2364
правильное значение PIN
- Несколько попыток ввести, введите
Два, атаки XSS
1. Хранение типа XSS атаки (Stored XSS атак)
-
- В названии символа в любой вход, вход доски сообщений
<script>alert("js4303");</script>
- В названии символа в любой вход, вход доски сообщений
2. светоотражающие атаки XSS (Отраженный XSS атак)
-
- Введите код ,
<script>alert("js4303");</script>
нажмите на странице покупки в то же время это дает обратную связь
- Введите код ,
Три, нападения CSRF
1. CSRF (Cross Site Request подлог (CSRF))
-
- Проверьте правую сторону страницы и меню параметров в значении Src, соответственно, 321 и 900
-
- Введите любые параметры, указанные в заголовке, сообщение поле ввода
<IMG SRC = "HTTP: // локальный: 8080 / Webgoat / атака Screen = 321 & меню = 900 & transferFunds = 5000" />
-
- 点击 Submit (其中语句中的&transferFunds=5000,即转走的受害人的金额;宽高设置成1像素的目的是隐藏该图片)
-
2.绕过 CSRF 确认( CSRF Prompt By‐Pass
)
-
- 查看页面右侧Parameters中的src和menu值分别为279和900
-
- 在title框中输入学号,message框中输入代码:
-
点击链接,攻击成功
实验感想:
这次实验难度不高,但项目比较多,因此也花费了不少时间。终于做完了最后一个实验,有点小开心,尽管说实话自己也觉得做得不怎么样,验收从没有去过,现场的确做不出来,一般要花费好几天才能搞定,因此从来没敢去验收。但将基础的东西完整地做完,我觉得自己的收获也不少。尽管过程很痛苦,但现在想起来还是挺好的。