X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> К вопросу о безопасности 4 (практическое применение)
Licoric
Licoric
Topic Starter сообщение 9.10.2009, 21:35; Ответить: Licoric
Сообщение #1


собственно создал index2.php
Внутри:
[php]<?php
include ("header.php");

// если фактическая ссылка пуста или равна числу - выводим контент страницы
$address1 = $_SERVER['QUERY_STRING'];

# if ((empty($_GET['page']) || !preg_match( '/\\d+/', $_GET['page'])) or empty ($address1) )
# если пусто после "?" ИЛИ
if (empty ($address1) or !preg_match( '/\\d+/', $_GET['page']))
{
echo "
<a href='index2.php'>index2.php</a><br>
<a href='index2.php?'>index2.php?</a><br>
<a href='index2.php?page=1'>index2.php?page=1</a><br>
<a href='index2.php?page=2'>index2.php?page=2</a><br>
<a href='index2.php?page=3 and select all'>index2.php?page=3 and select all;</a>
";
}
elseif ($address1 != preg_match( '/\\d+/', $_GET['page']))
{
echo "SQL инъекция";
include ("footer.php");
die;
}
include ("footer.php");
?>[/php]
Надеюсь идея понятна. Но не работает... Я с preg_match запутался...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 12.10.2009, 1:32; Ответить: Licoric
Сообщение #2


А что, если...
Допустим инъекция выглядит в виде
index.php?id=1'; drop all; или примерно так.
Если после извлечения данных из переменной не переименовать переменную. В смысле получается примерно так:
$id = $_GET['id'];
$id2 = $id;
Ибо $id у нас получается = 1'; drop all;
Вот эти кавычки и повторяющиеся точки с запятой не вызовут ошибку?

ps наверняка нет, ибо я не могу придумать глобальную защиту тут за 5 минут "на коленке". Но может быть что-то подобное придумать можно?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 12.10.2009, 1:55; Ответить: alexdrob
Сообщение #3


я чтото не пойму а что таким образхом ещё работает Sql инъекция? я когда пробовал поставить ; в запросе то вылетала ошибка всегда

запрос
select * from table
будет работать

а
select * from table; delete from users;
не будет

так какая инъекция может быть?)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 12.10.2009, 2:31; Ответить: Licoric
Сообщение #4


я не знаю. Все началось отсюда:
http://forum.audipiter.ru/index.php?showto...amp;st=20&#
28-й пост и ниже.
Как он это сделал - я не знаю. Но хотел бы что бы этого не было.

ps в том посте была чисто теория.
Ведь я не гений, а только учусь...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 12.10.2009, 3:33; Ответить: alexdrob
Сообщение #5


ну можно сделать инъекцию типа если у тебя запрос

select * from table where id=$id

вызов страници

index.php?id=1 union select * from users # весь запрос остальной останется комментарием после #
это выведет данные из другой таблицы, но если у тя пароли юзеров шифрованны то не так и страншно

решается легко

$id=(int)$_GET['id']; и кроме числа не чё не пройдёт

дальше например авторазация

select id from users where login='$login' and pass='$pass'

тут чуть похуже можно вызвать так

index.php?login=admin' or 1=1 #

что даст авторизацию под любым логином а значит и под админским

решают так
$login=addslashes($_GET['login']);

что не даст закрыть апостроф
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 12.10.2009, 4:37; Ответить: Licoric
Сообщение #6


Слушай - а можешь поделать всяких инъекций на сайте? Типа теста? А то у меня что-то ничего не выходит. Да и опыта, если честно, не было еще :rolleyes:.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 12.10.2009, 4:50; Ответить: Licoric
Сообщение #7


ps это поэтому (из-за возможности взлома) большинство сайтов используют ссылки в виде
site.ru/news/3192.html
Т.е. другими словами без запросов. Вернее без параметров, передаваемых в запросах.
Просто генерируют страничку и сохраняют ее. А потом выдают ссылку на страничку...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 12.10.2009, 8:13; Ответить: Alcorn
Сообщение #8


В БД есть сохранённые/хранимые процедуры, данные запроса передаются параметрами, как переменные. Символы ' ; -- UNION идут как обычный текст. Выполнить иньекцию с процедурой не получилось, если напрямую, то работает.

Как в mysql дела обстоят, не знаю.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 12.10.2009, 9:18; Ответить: Witu
Сообщение #9


http://allcarinfo.ru/user/add_news.php?ad='
сомневаюсь что через это ломанули
отключено оч много


site.ru/news/3192.html
чото я сомневаюсь что они сохраняют копии может просто
мод реврайт используют

PS ты походу что то сделал с фильтровкой ID раньше можно было много чего найти а сейчас не очень
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 12.10.2009, 12:35; Ответить: alexdrob
Сообщение #10


(Licoric @ 12.10.2009, 07:50) *
ps это поэтому (из-за возможности взлома) большинство сайтов используют ссылки в виде
site.ru/news/3192.html
Т.е. другими словами без запросов. Вернее без параметров, передаваемых в запросах.
Просто генерируют страничку и сохраняют ее. А потом выдают ссылку на страничку...


HTMLandPHP прав, не кто не сохраняет, просто используют mod_rewrite

вот пример, создаёшь .htaccess

RewriteEngine on
RewriteBase /

RewriteRule ^news-([0-9]*).html news.php?page=$1
RewriteRule ^forum-([0-9]*)-([0-9]*).html forum.php?id=$1&page=$2


пишешь в строке news-1.html а на самом деле откроется news.php?page=1
пишешь forum-1-2.html откроется forum.php?id=1&page=2
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Выполняю аудит безопасности сайта с корректировкой проблемных зон
17 littleАnt 6077 22.3.2021, 0:45
автор: littleАnt
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыАУДИТ БЕЗОПАСНОСТИ САЙТОВ
1 kent001 1287 19.8.2017, 21:24
автор: r0mZet
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПрактическое обучение
7 ssabbass 1543 26.5.2016, 17:31
автор: TimurR
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыОрганизация безопасности сайта
0 siteclean 1383 3.4.2016, 14:55
автор: siteclean
Открытая тема (нет новых ответов) Аудит безопасности вашего сайта
0 auditsaitov-001 1245 14.7.2015, 14:22
автор: auditsaitov-001


 



RSS Текстовая версия Сейчас: 23.4.2024, 18:48
Дизайн