Чтение данных с MsSql

Discussion in 'Уязвимости' started by constanta, 25 Feb 2008.

  1. constanta

    constanta New Member

    Joined:
    19 Sep 2007
    Messages:
    33
    Likes Received:
    2
    Reputations:
    0
    Уважаемые Гуру, начал изучать не так давно mssql и столкнулся на одном, очень интересном для меня, ресурсе вот с такой бедой :

    Прочитал из базы все таблицы и имена всех колонок из интересующих меня таблиц.

    В результате имеем таблицу
    aUsers и колонки в ней

    Email
    EventUser
    LastLogon
    LogOns
    Name
    Notes
    Password
    UserID
    UserName


    Попробывал прочитать интересующую меня колонку
    Emai вот таким способом

    Получил

    Перестроил запрос на вот так

    Получил 1 мыло. Дальше пытался в конце добавить + where+userid={какое то значение}

    получил синтаксическую ошибку. Я так понимаю что 2 раза where не катит. Хорошо сделал вот так

    Получал опять какое то мыло.

    ВОПРОС!!! КАк можно просмотреть дальше список емайлов если
    не работает.

    Прошу прощения что так длинно все это описал. Хотел просто что бы вы видели мои действия.

    З.Ы Хочу выразить отдельную благодарность Cash за его статью про MsSql. Спасибо огромное!!!!
     
    #1 constanta, 25 Feb 2008
    Last edited: 25 Feb 2008
  2. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    <>
    not in
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    SELECT ROW_NUMBER() OVER (ORDER BY email DESC) AS Row
    WHERE Row >=1 AND Row <3
    Перебирать...
     
  4. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    удачи тебе слить так базу хотя бы в 5к =))
    Перебирать что??? будут выводить номера строк... я тебе из и так могу 1,2,3,4,5,6...
    Не уверен что данная конструкция будет работать в иньекции.

    Для начала
    Определяем общее число записей.
    далее определяем числовые приделы индексации, тоесть минимальный и максимальный
    UserID
    Далее оперевщись на эти данные выводим те промежутки которые нам надо:

    Смотрим есть ли вывод, и делаем запросы уже на конкретные UserID.

    Если нету числового поля идущего по примеру $i=1; $i++; то просто создаем таблицу и инстертим туда что нам надо делая при этом такую индексацию id которая нас бы устроила.
     
  5. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    [ cash ]

    ну да, конечно, уему удобней создать новую таблицу)))


    два where нигде не поддерживается

    select blabla from blabla where q='1' and w='1' and ..
     
  6. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    тоже считаю, что удобнее создать табличку с индексами, запихнуть туда нужные значения и вытаскивать их примерно как то так:

    CREATE TABLE temp (
    id INT( 6 ) NOT NULL AUTO_INCREMENT ,
    email VARCHAR( 255 ) NOT NULL ,
    INDEX ( id )
    ); insert temp (email) select email from aUsers;

    сталкивался с такой проблеммой, один раз ооочень помогла конструкция union select но возможность использования этой конструкции зависит от везения