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

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

07.01.2012, 01:06. Показов 1919. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru