powered by utopsite

Discussion in 'Веб-уязвимости' started by Scipio, 24 Oct 2007.

  1. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Ну это не совсем CMS, так что не совсем в тему... (хотя тут про phpMyAdmin даже тема закрепленная есть)

    вобщем нашел sql-inj в этом движке рейтинга сайтов

    уязвимость в файле index.php в переменной opted пердающейся методом POST. Инъекция происходит после конструкции order by, что при наличии на сервере Mysql 4.1 и выше дает возможность получить данные при помощи подзапросов
    dork: intitle: powered by utopsite

    пример:

    сайт:www.extreem.ru (к сожалению версия Mysql 4.0)
    путь до уязвимого скрипта:http://www.extreem.ru/rating/index.php

    послав скрипту пост-переменную opted со значением
    Code:
    -hits*(substring(version(),1,1)=4)
    (при этом пост переменная way должна принимать значение desc)

    мы видим, что сортировка идет по возрастанию значения "Хитов:", значит подзапрос правильный (значение True или 1), если подзапрос принимает значение FALSE, в нашем случае:
    Code:
     -hits*(substring(version(),3,1)=1)
    такого не происходит

    т.о. для весии mysql>=4.1 мы можем получать данные из БД c помощью подзапросов (не буду описывать как, знающие синтаксис Mysql сами все понимают)
    для версии mysql<4.1 можно получить определенную информацию (user(),version(),database(),host) как я и показал в примере...

    PS также после order by можно использовать конструкцию select if например в переменную opted послать:
    Code:
    (select+if(ascii(substring(version(),1,1))=52,hits,vote))
    если подзапрос вернет true, то сортировка будет по значению "Хитов:"(hits), в противном случае по значению "Голосов:"(vote)
     
  2. it's my

    it's my Banned

    Joined:
    29 Sep 2007
    Messages:
    335
    Likes Received:
    347
    Reputations:
    36
    Можно ли написать сплоит под эту уязвимость?
    если да, то неземное уважение и куча респекта!