Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 4

Трудности с SQL-инъекцией и XSS

07.01.2012, 01:06. Показов 1931. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый, форумчане! Помогите советом, есть несколько вопросов.
1. Есть скрипт авторизации -
форма
HTML5
1
2
3
4
5
6
7
  <form action="login_on.php" method="POST">
  <p>Логин</p>
  <p><input type="text" name="login"></p>
  <p>Пароль</p>
  <p><input type="password" name="password"></p>
  <p><input type="submit" name="submit" value="Войти"></p>
  </form>
и обработчик
PHP
1
2
3
4
$login=$_POST['login'];
$password=$_POST['password'];
$result = mysql_query("SELECT * FROM users 
  WHERE login='$login' && password='$password'");
Пробую обойти авторизацию инъекцией на логин ivan' -- , вместо зарегистрированного пользователя ivan, соответственно с произвольным паролем. Не приходит. Видимо экранируются пробелы и кавычка. Добавляю в скрипт строку,
PHP
1
ini_set(’magic_quotes_gpc’, ‘off’);
которая должна отключить magic_quotes_gpc и соответственно экранирование спецсимволов. Как быть?

2. Необходимо реализовать XSS, лучше активную. Соответственно нужно разработать какой-то функционал, который позволит пользователю реализовать XSS. Какой функционал проще реализовать и какую XSS сможет реализовать пользователь в соответствие с этим функционалом.

Спасибо.

Добавлено через 1 час 7 минут
P.S. Скрипт мой. Дыры в нем сделать нужно по учебе, чтобы студенты изучали уязвимости, а затем их закрывали.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2012, 01:06
Ответы с готовыми решениями:

Автоматизированный поиск SQL и XSS-уязвимостей
Вообщем есть задание написать прогу на C# которая будет находить SQL и XSS уязвимости. Прочитал уже много всего про это и делал в ручную...

WYSIWYG защита от sql, xss injection
Добрый час. Хочу дать пользователям при добавление статьи максимум удобств и возможностей + наглядность. Поэтому решил остановится на...

Трудности с Update в Access присоединенных SQL Server таблиц
Уважаемые Знатоки, Прилинковал таблицу из SQL 7.0 в Access 97. Открываю ее в Access 97 и пытаюсь редактировать данные вручную....

11
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
07.01.2012, 08:36
Цитата Сообщение от Ma7 Посмотреть сообщение
ini_set(’magic_quotes_gpc’, ‘off’);
Если она включена, то данные извне в переменные попадают еще до того, как начнет выполняться любой код. Так что попытки измененить её из кода - это "поздно пить боржоми...".

Если она включена, то пришедшие данные надо принудительно обратно разэкранировать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function strip_slashes_byref(&$value) {
    if (is_string($value))
        $value = stripslashes($value);
}
 
function array_stripslashes(array &$array) {
    array_walk_recursive($array, 'strip_slashes_byref');
}
 
if (get_magic_quotes_gpc()) {
    array_stripslashes($_GET);
    array_stripslashes($_POST);
    array_stripslashes($_COOKIE);
}
После этого уже не имеет значение, была ли она включена или нет.
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 4
07.01.2012, 11:45  [ТС]
А если отключал ее также через php.ini? Результат при этом не менялся.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
07.01.2012, 12:02
Ma7, А в "ivan' --" после второго дефиса есть пробел? Выведите строку с получающимся запросом.
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 4
07.01.2012, 12:06  [ТС]
Vovan-VE, Пробел делаю. Как посмотреть какой запрос получается?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
07.01.2012, 16:37
Цитата Сообщение от Ma7 Посмотреть сообщение
Как посмотреть какой запрос получается?
PHP
1
echo "SELECT * FROM users WHERE login='$login' && password='$password'";
до $result.

Не по теме:


Vovan-VE, почему вы используете в ф-ях ссылки?
Что произойдет, если написать просто переменную?

0
07.01.2012, 18:42

Не по теме:

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Vovan-VE, почему вы используете в ф-ях ссылки?
Что произойдет, если написать просто переменную?
Тут всё исходит из того, что array_walk_recursive() принимает массив по ссылке и применяет указанную функцию ко всем элементам рекурсивно. При этом обозначенной функции также разрешено принимать значение элемента по ссылке, благодаря чему мы можем его изменить на месте, не трогая структуру исходного массива и не создавая нового массива.

Если делать иначе, то придется вообще отказаться от array_walk_recursive() и, например, свою рекурсивную функцию ваять. Но такой способ будет выполняться в разы медленнее. Чем меньше выполняется нашего PHP-кода, быт лучше.

1
07.01.2012, 19:10

Не по теме:


а в первой ф-ии для чего?
Правильно ли я понимаю, что ссылки вабще так передаются, чтобы взять какую-либо переменную из скрипта и пропуская через ф-ю автоматом менять значение перменной вне ф-ии?

0
07.01.2012, 19:18

Не по теме:

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
а в первой ф-ии для чего?
Первая функция - это просто callback для array_walk_recursive(). В доке по array_walk_recursive() написано, что можно, значит можно. Если бы не было написано, что можно (или было бы написано, что нельзя), тогда увы.

1
 Аватар для WebGraf
79 / 78 / 3
Регистрация: 18.05.2010
Сообщений: 375
Записей в блоге: 1
08.01.2012, 01:46
Не изобретайте велосипед, его уже давно изобрели.
Входящие данные в базу:
PHP
1
2
3
$sql = mysql_query("SELECT * FROM `users` WHERE
    `login` = '" . mysql_real_escape_string($login) . "' &&
    `password` = '" . mysql_real_escape_string($password) . "'");
Вывод из базы:
PHP
1
2
3
4
$var = mysql_fetch_assoc($sql);
 
echo htmlspecialchars($var['email']);
echo htmlspecialchars($var['name'], ENT_QUOTES, 'UTF-8');
А magic_quotes_gpc должны быть на сервере по умолчанию off. У каждого уважающего себя хостера так и есть.
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 4
08.01.2012, 13:50  [ТС]
Vovan-VE, Love_and_Peace, спасибо! Не знаю почему сразу не сработало, но сейчас просто отключив magic_quotes_gpc через php.ini, эта инъекция прошла. Если можете высказаться по второй части вопроса по поводу XSS буду рад выслушать.
WebGraf, нужно специально сделать дыру, которую студенты уже потом будут сами закрывать.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
09.01.2012, 12:40
Цитата Сообщение от Ma7 Посмотреть сообщение
Если можете высказаться по второй части вопроса по поводу XSS буду рад выслушать.
Сохраняете в базу, например, текст комментария пользователя в исходном виде (так и должно быть), но выводите его на страницу напрямую без прохождения через htmlspecialshars().
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2012, 12:40
Помогаю со студенческими работами здесь

Может ли быть атака инъекцией
Если в базу данных передаётся сообщение, которое может состоять только из русских букв верхнего или нижнего регистра, цифр и знаков '.',...

Является ли отображение инъекцией, сюръекцией и биекцией?
Помогите пожалуйста. Является ли отображение инъекцией, сюръекцией и биекцией? f: -&gt;R, f(x)=x2-x g: Z2 -&gt;Z2, g((m,n)) = (m2-n2;...

SQL Запросы в Базе Данных (SELECT, DELETE). Возникли некоторые трудности в их составлении
Здравствуйте, мне нужно сделать следующие запросы в базе данных &quot;Автовокзал&quot; (схема во вложениях): На Select: 1) Для каждого...

Является ли функция инъекцией, сюръекцией или биекцией?
Является ли функция g : Z x Z \rightarrow Z , g((s,t))= \begin{cases} &amp; \text \frac{s+t}{2} + 1 \\ &amp; \text s+t+1 \end{cases} ...

XSS
Здравствуйте, что то я не могу понять почему у меня срабатывает http://site.ru/&lt;script&gt;alert();&lt;/script&gt; а, пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru