Sql ошибка

Discussion in 'PHP' started by ArdeOS, 9 Apr 2006.

  1. ArdeOS

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

    Joined:
    16 Jul 2004
    Messages:
    137
    Likes Received:
    64
    Reputations:
    15
    День добрый !

    Есть сайт одного прова, на страничке пополнения счета в первой строке имеется ошибка, при вводе туда кавычки он выплевывает следующее:

    select card_blocked,card_expired,card_value FROM cards_list WHERE card_namber=\' AND card_pin=PASSWORD('Bj2K65kZ3a') AND UNIX_TIMESTAMP(card_expired) > UNIX_TIMESTAMP(CURDATE());
    You have an error in your SQL syntax near '\' AND card_pin=PASSWORD('Bj2K65kZ3a') AND UNIX_TIMESTAMP(card_expired) > UNIX_T' at line 1

    1. Там 4 поля для заполнения:
    Номер карточки,
    Код активации карточки (PIN),
    Имя пользователя,
    Пароль.
    Если подставлять кавычку в первое поле, НЕ заполняя при этом второе (или вводя не правильный пин), ошибки не возникает (скрипт - говорит что такой карты несуществует). Значит скрипт ищет в базе код активации, и если он найден (независимо от того карта) то, идет проверка первого поля - как то по тупому выходит ... или я не прав ???
    Как я понял из информации про ошибку - мы знаем 2 поля: "card_namber=" и "card_pin=" как можно сформировать запрос для нахождения остальных полей ???
    Или как можно обойти экран "\'" ???

    PS. На форуме искал статьи и инфу по данной теме, но так ничего полезного и не смог изъять из них для этой уязвимости.
    К сожалению, по понятным причинам адрес сайта сообщить не могу :(
     
  2. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    Да ещё мы знаем
    card_blocked card_expired card_value
    и Таблицу cards_list :)