Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysql injection, скрипт в котором не фильтруется HTML.. 
:(
    Опции темы
Rezzonans
Дата 14.6.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Привет, люди! Вопрос у меня к вам такой: есть скрипт

Код

<html>
<head></head>
<body>
<table align = center>
<tr>
 <td>
<form method = 'POST'>
      <b>Имя:</b><br>
      <input type = 'text' name = 'name' size = 66><br>
      <b>Сообщение:</b><br>
      <textarea name = 'text' cols = 50 rows = 15></textarea><br>
      <input type = 'submit' value = 'Отправить'>
</form>


<?php

     $user = "fun";
     $host = $_SERVER['HTTP_HOST'];
     $passwd = "";
     $db = "hack";


            mysql_connect($host, $user, $passwd);
            mysql_select_db($db);

if($_POST['name'] and $_POST['text']){
       if(!(mysql_query("INSERT INTO messages(name, text) VALUES(
       '".$_POST['name']."'
       ,
       '".$_POST['text']."'
       )
       "))){
               mysql_query("create table messages(
               name varchar(30),
               text text,
               id_msg int auto_increment primary key)");

               mysql_query("INSERT INTO messages(name, text) VALUES(
               '".$_POST['name']."'
               ,
               '".$_POST['text']."'
               )") or die("MySql error:".mysql_error());
       }

?>

        <script language = "JavaScript">
                parent.location.href = '<?= $_SERVER['SCRIPT_NAME'] ?>';
        </script>

<?php
}

 $query = mysql_query("select * from messages");
          for($data = array(); $row = @mysql_fetch_assoc($query); $data[] = $row);

          foreach ($data as $element){
          ?>

          <table width = 400 border = 1>
           <tr>
               <td width = 30><b>Имя:</b><td><?= $element['name'] ?></td>
           </tr>
           <tr>
               <td width = 30><b>Сообщение:</b><td><?= $element['text'] ?></td>
           </tr>
          </table>
<br>

<?php
}
?>

          </tr>
     </td>
</table>

</body>
</html>


ну получается что-то похожее на гостевую книгу. Как видно, html теги не фильтруются. Можно ли через интерфейс этого скрипта заставить работать какие-нибудь php вложения когда. Я пробовал прямо в поле "Сообщения" ввести нечто вроде:

Код

<?php
echo "hi";
?>


ничего не получается. Данные заносятся в базу данных "как есть", а при работе скрипта не отображаются в сообщениях. Существуют ли другие возможности сделать sql-injection? 
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
kuhan
Дата 15.6.2006, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.12.2005

Репутация: нет
Всего: 1



можно произвести XSS-атаку, написать сообщение типа
Код

<script language = "JavaScript">
alert('bla-bla-bla') // вместо вставляем какой-нибудь вредоносный код, который украдет куки
</script>


можно и sql-injection: написать в сообщении
Код

');
DROP TABLE messages; /* здесь любой запрос */ 
#


P.S. пора уже запомнить, что все данные, которые записываются в БД надо прогонять через функцию mysql_real_escape_string, а перед тем как что-то вывести на экран пользователя через htmlspecialchars 
PM MAIL WWW ICQ   Вверх
Rezzonans
Дата 15.6.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Знаю я про htmlspecialchars и mysql_real_escape_string, а так же про яву скрипт. Просто пытаюсь понять как можно сломать такой скрипт, и пока чего-то кроме html тегов и окошка alert ничё в голову не пришло..

Кстати:

Код

');
DROP TABLE messages; 


не проходит, просто как сообщение выводится 
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
AztEK
Дата 15.6.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 1
Всего: 18



Rezzonans видимо стоит magic_quotes_gpc = On 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Рыжий
Дата 15.6.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Rezzonans, попробуй еще все сообщения через eval() прогонять, если хочешь экстримальных ощущений... 
PM MAIL ICQ   Вверх
Rezzonans
Дата 16.6.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Рыжий, eval.. знаю в perl - это обработчик ошибок smile) Как его тут применить, подскажи?

Добавлено @ 09:21 
AztEK,  magic_quotes_gpc стоп, стоп - эта директива влияет на то обрабатываются ли входные параметры от специальных символов или нет? И походу обрабатываются..  smile   

Это сообщение отредактировал(а) Rezzonans - 16.6.2006, 09:23
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
Рыжий
Дата 16.6.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Rezzonans, Вообще, это шутка была, в php eval берет строку и выполняет ее как скрипт.

PS а по теме - необработка данных это вообще самое плохое, что может быть... 
PM MAIL ICQ   Вверх
AztEK
Дата 16.6.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 1
Всего: 18



Rezzonans
Цитата(Rezzonans @  16.6.2006,  12:18 Найти цитируемый пост)
эта директива влияет на то обрабатываются ли входные параметры от специальных символов или нет? И походу обрабатываются..


Да, именно так. В это случае это спасает от sql-injection. А вот нефильтрация тегов - верный путь к XSS. 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Rezzonans
Дата 16.6.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



AztEK, так что, никак и ничего нельзя сделать? 
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
-=Ustas=-
Дата 16.6.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(Rezzonans @  16.6.2006,  14:16 Найти цитируемый пост)
AztEK, так что, никак и ничего нельзя сделать?  


Rezzonans, Я что-то не пойму, ты хочешь защититься или взломать?! smile 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
AztEK
Дата 18.6.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 1
Всего: 18



Rezzonans, сделать можно, но во-первых это RTFM, а во-вторых противоречит правилам форума. 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Rezzonans
Дата 19.6.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



-=Ustas=-, да, ты угадал smile 
AztEK, а что есть RTFM? 
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
-=Ustas=-
Дата 19.6.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(Rezzonans @  19.6.2006,  16:37 Найти цитируемый пост)
AztEK, а что есть RTFM?


Rezzonans, если ты не знаешь что такое РТФМ, то до взломов тебе еще очень далеко! Можешь даже и не смотреть за этот горизонт!
 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.