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

  #1  
Старый 31.07.2009, 15:48
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

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

jokester

Интерпретатор переводит строку к числу, когда у нее первый символ - цифра, если второй операнд - числовой (как в твоем примере). Но я в тех примерах сравнивал по две строки, а не числа со строками.
К тому же, если интерпретатор просто переводит эти строки в числа, то с нулем в начале, он по логике вещей скорее должен был бы считать их восьмеричными числами, но это не так: 0789 - не восьмеричное число.

По сути, скорее всего пхп сравнивает:
'' c '' (пустые строки)
'789' и '789' (именно строки, а не числа)
и строки '00abc' и '0000abc' - при наличии букв нули в строках не убираются, даже если вставить цифры:
Код:
<?php 
if ( '0012a' == '000012a' ) echo "Условие верно";
?>
Результатом условия будет false.

add: впрочем, это пока просто мои предоложения - как будет время покопаюсь в сорсах php по этому поводу.

Последний раз редактировалось cr0w; 31.07.2009 в 15:57..
 
Ответить с цитированием

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

Репутация: 4915


По умолчанию

cr0w

Он так-же приведёт строки к числу если обе строки состоят только из цифр.

add/

Так что вроде всё логично. Это строки, т.к. буквы присутствуют:
Код:
if ( '0012a' == '000012a' ) echo "Условие верно";
А вот это уже числа:
if ( 4 == '4abc' ) // сдесь т.к. один из операндов число
if ( '000' == '000000' ) // ну а тут
if ( '00789' == '000000000789' ) // всё числа

PS Спасибо Qwazar, направил на путь истиный

Последний раз редактировалось jokester; 31.07.2009 в 19:58..
 
Ответить с цитированием

  #3  
Старый 31.07.2009, 23:12
HAXTA4OK
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами: 9030566

Репутация: 2017


По умолчанию

раз удалил тему мою кто то напишу тут

есть XSS спер куки...тока спер я PHPSESSID а с логином и пассом куки не сперлось

что это мне дает? можно ли что нибудь с этим сделать?
 
Ответить с цитированием

  #4  
Старый 01.08.2009, 05:07
JOHNik
Познающий
Регистрация: 21.04.2009
Сообщений: 58
С нами: 8976725

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

Цитата:
Сообщение от HAXTA4OK  
раз удалил тему мою кто то напишу тут

есть XSS спер куки...тока спер я PHPSESSID а с логином и пассом куки не сперлось

что это мне дает? можно ли что нибудь с этим сделать?
Можно попробовать вставить в браузер, будешь авторизован на сайте автоматом, единственный минус идентификаторы долго не живут.
 
Ответить с цитированием

  #5  
Старый 31.07.2009, 23:33
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

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

jokester

В целом, ты тут прав.

Хотя насчет "логичности" таких преобразований типов можно было бы поспорить. Но в документации такое поведение, вобщем-то, кое-как зафиксировано, т.ч. ресерчить тут вроде как и нечего.

Последний раз редактировалось cr0w; 31.07.2009 в 23:36..
 
Ответить с цитированием

  #6  
Старый 31.07.2009, 23:37
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
С нами: 11020706

Репутация: 4693


По умолчанию

cr0w, да логично, логично.

Если один из операндов однозначно число, то оба операнда приводятся к числам, и сравниваются как числа.

Если оба записаны в виде строк, то проверяется числа это или строки, если числа, то сравниваются как числа, если хотябы один операнд однозначно не число, то сравниваются как строки, посимвольно.

Логично
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #7  
Старый 31.07.2009, 23:58
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

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

Qwazar

Нелогично в том плане, что числа в пхп могут быть не только десятичными. И тут возникает "неоднозначность", когда в строке находится число, начинающееся с нуля. Почему пхп приводит его к десятичному числу, отбросив нули, а не к восьмеричному (кстати, это не только в пхп так, но и в perl, например) ? (;
 
Ответить с цитированием

  #8  
Старый 01.08.2009, 13:00
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
С нами: 11020706

Репутация: 4693


По умолчанию

Цитата:
Сообщение от cr0w  
Qwazar

Нелогично в том плане, что числа в пхп могут быть не только десятичными. И тут возникает "неоднозначность", когда в строке находится число, начинающееся с нуля. Почему пхп приводит его к десятичному числу, отбросив нули, а не к восьмеричному (кстати, это не только в пхп так, но и в perl, например) ? (;
Ты использовал только цифры 0-7 ? С плавающими числами всех видов норм приводит к числу. С восьмеричными не пробовал.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #9  
Старый 01.08.2009, 18:19
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

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

Цитата:
Сообщение от Qwazar  
Ты использовал только цифры 0-7 ? С плавающими числами всех видов норм приводит к числу. С восьмеричными не пробовал.
Например:
Код:
<?php
if ( 12 == '12' ) echo "Условие 1 верно. ";
if ( 012 == '012' ) echo "Условие 2 верно. ";
if ( 0x1A == '0x1A' ) echo "Условие 3 верно.";
?>
выведет
Цитата:
Условие 1 верно. Условие 3 верно.
Шестнадцатеричные числа - нормально преобразуются из строки в число, восмеричные - нет. Собственно, в этом и вижу некоторую "нелогичность" такого поведения интерпретатора.
 
Ответить с цитированием

  #10  
Старый 01.08.2009, 05:30
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

как и любые остальные куки - время жизни есть у всего. Вы вообще, хоть раз в жизни, смотрели свои куки на форумах всяческих? Что, везде прямо таки md5 и лежит? Давно уже пора привыкнуть, что если хотя бы сессия есть - уже круто. Про пароли забудьте раз и навсегда на бол-мен нормальных ресурсах
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ваши ламерские приколы (Ну когда только комп появился) PEPSICOLA Болталка 188 23.05.2010 10:05
Ваши любимые компьютерные игры PEPSICOLA Болталка 280 19.08.2009 00:01
Ваши телеги... F-IFTY Болталка 13 18.08.2009 18:22
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...