The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов, opennews (??), 08-Авг-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


8. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +8 +/
Сообщение от Онаним (?), 08-Авг-21, 13:55 
Мама дорогая.
Отбрасывал ноль перед значениями в адресе, но только если указано не более трёх цифр.
Эпичное смузихлёбство в ретро-академической степени, "типауниверсальность".
Ну вот кто мне расскажет, ЗАЧЕМ в типовых сервисах нужен восьмеричный формат human-readable IP? Или с лидирующими нулями?
Выкинуть и забыть. Строгий decimal-формат, никаких лидирующих нулей, никаких вторичных представлений. Стандартизация.
Ах, у мну столетний сервис, который восьмеричный вариант отдаёт? Поставить перед этим сервисом транслятор флагом, только для этого сервиса, остальных лесом.
Иначе такие разброды и шатания не прекратятся.
Ответить | Правка | Наверх | Cообщить модератору

9. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 08-Авг-21, 13:57 
Все перечисленные на скринах представления - в стандартной библиотеке отбивать с ошибкой. Ибо нехер. Кто хочет - форматирует сам, на страх и риск.
Ответить | Правка | Наверх | Cообщить модератору

12. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 08-Авг-21, 14:00 
Не надо в меня палочкой тыкать, вот этот вот адресный маразм, из C тянущийся - причина, по которой у меня перед inet_aton идёт собственная валидация всегда.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

26. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Аноним (37), 08-Авг-21, 14:38 
Ну да, ну да. В других языках, конечно, при пользовательском вводе язык сам всё проверяет и даёт пользователю по башке. И только убогая сишечка до сих пор этого не умеет. Тьфу на вас. И второй раз тьфу. Если тестеры у вас дерьмо - увольте и наймите новых.
Ответить | Правка | Наверх | Cообщить модератору

30. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +3 +/
Сообщение от Аноним (34), 08-Авг-21, 14:42 
А чем новые тестеры отличаются от старых?
Ответить | Правка | Наверх | Cообщить модератору

33. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноним (37), 08-Авг-21, 14:43 
Тем, что в следующий раз он будет тестеров проверять, прежде чем нанимать. А то любой студентишка с нулевым опытом может стать "тестером" сейчас.
Ответить | Правка | Наверх | Cообщить модератору

36. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +3 +/
Сообщение от Аноним (34), 08-Авг-21, 14:45 
И что по итогу никого не наймет. Проблема тут явно не в тестерах.
Ответить | Правка | Наверх | Cообщить модератору

41. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +1 +/
Сообщение от Аноним (37), 08-Авг-21, 14:48 
> Например, атакующий может передать значение 00000177.0.0.1, которое при проверке в функции net.ParseCIDR(00000177.0.0.1/24) будет разобрано как 177.0.0.1/24, а не 127.0.0.1/24.

Ну да, проблема не в тестерах а в компьютерах. Давайте заново изобретём безопасный компьютер, который 100% будет защищать от кривого ввода юзверя.

Ответить | Правка | Наверх | Cообщить модератору

376. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +1 +/
Сообщение от Аноним (362), 09-Авг-21, 05:18 
Рассуждение с видом якобы очень опытного знатока про сферическо-вакуумную ситуацию с безопасностью.

С безопасностью там все нормально, в том числе с её КПД по "процентам" к затратам. Если вы про это.

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

Ответить | Правка | Наверх | Cообщить модератору

44. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +6 +/
Сообщение от Аноним (44), 08-Авг-21, 14:50 
Все системы счисления, кроме десятичной - запретить! Разбивать разряды точкой - запретить!
В языках программирования литералы чисел только десятичные!!!111
Специалисты стандартизаторы...

Что такое IP - это целое число 4 байта. В одном байте слава богу не 10 бит, а 8. И несмотря на мнимую десятичность точечной записи, это именно октеты.

Поймите, проблема именно в том, что у нас даже в высшей школе работают только с одной системой исчисления.
В отрасли развелось макак, не понимающих, что такое число и как оно хранится в памяти.

>Отбрасывал ноль перед значениями в адресе, но только если указано не более трёх цифр

Это безграмотно с любой точки зрения.

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

50. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +3 +/
Сообщение от пох. (?), 08-Авг-21, 14:54 
> Все системы счисления, кроме десятичной - запретить!

и любителей ipv6 тоже запретить. ящетаю, правильно (можно ради этой победы пожертвовать 0177)

Ответить | Правка | Наверх | Cообщить модератору

69. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от псевдонимус (?), 08-Авг-21, 15:10 
>любителей ipv6 тоже запретить

Полностью поддерживаю!

Ответить | Правка | Наверх | Cообщить модератору

381. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Любитель IPv6 (?), 09-Авг-21, 05:46 
> Полностью поддерживаю!

Я вас быстрее запрещу путем превращения в динозавров.

Ответить | Правка | Наверх | Cообщить модератору

483. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +1 +/
Сообщение от Аноним (-), 09-Авг-21, 18:21 
Смотри сам от натуги в тыкву не превратись.
Ответить | Правка | Наверх | Cообщить модератору

191. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 08-Авг-21, 16:45 
Эк вас распёрло.

Проблема не в том, что люди разучились 8ричную систему понимать, это ваши чисто странные фантазии.

Проблема в идиотском стандарте. Мешающем в кучу две системы исчисления без явного указания конкретной системы.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

272. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +2 +/
Сообщение от Онаним (?), 08-Авг-21, 19:43 
Именно так. С восьмеричной системой задница имеющегося "стандарта" в том, что он для "как отличать" нулём префиксуется. Давно бы пора уже попытки всё это автоматом разобрать закопать, заставив в явном виде указывать, ЧТО ждём на входе. DEC, OCT или HEX. А не пытаться разобрать мешанину из мух и котлет.
Ответить | Правка | Наверх | Cообщить модератору

400. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Совершенно другой аноним (?), 09-Авг-21, 08:54 
> Проблема в идиотском стандарте. Мешающем в кучу две системы исчисления без явного указания конкретной системы.

ведущий 0 явно указывает 8-миричную систему счисления. А вообще нормальный такой подход - это не в библиотеке Rust сделали ошибку, это стандарт кривой, и поэтому там сделали ошибку. Так если так рассуждать, то и в C-шных и C++-снутых программах ошибок нет, да и вообще, во всех остальных языках - то таки стандарты кривые, которые мешают их реализовывать.

Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

468. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 17:31 
Для человеческого здравого смысла не указывает.
А мы ведь говорим о стандарте текстового представления.

>Так если так рассуждать, то и в C-шных и C++-снутых программах ошибок нет

Нет конечно.
Мы тут давно это выяснили. Есть только простота переполнения буфера и удобство указателя на освобождённую память.

Ответить | Правка | Наверх | Cообщить модератору

484. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Совершенно другой аноним (?), 09-Авг-21, 19:10 
> Для человеческого здравого смысла не указывает.
> А мы ведь говорим о стандарте текстового представления.

здравые смыслы, они бывают разные. И вообще, что-бы что-то делать по стандарту, внезапно, надо его читать, а то, что разработчики библиотеки не удосужились почитать стандарт

>>Так если так рассуждать, то и в C-шных и C++-снутых программах ошибок нет
> Нет конечно.
> Мы тут давно это выяснили. Есть только простота переполнения буфера и удобство
> указателя на освобождённую память.

Меня, вот, никак не напрягает указатель на освобождённую память, при довольно большом опыте программирования на C, у меня нечто подобное было, наверное, раза два, может три, не более. Примерно аналогичное число случаев переполнения буфера.

Ответить | Правка | Наверх | Cообщить модератору

270. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 08-Авг-21, 19:41 
Кроме двоичной.
А для двоичной вот эти ваши 0-9 ещё и 48-57 в ASCII, так что всё равно преобразовывать.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

277. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +3 +/
Сообщение от Онаним (?), 08-Авг-21, 19:48 
> Что такое IP - это целое число 4 байта.

Big endian или little endian? :D

Это для нас оно 4 байта.
А от пользователя оно прилетает хер пойми как записанное в текстовом виде.
И вот это хер пойми как и неплохо бы немножко причесать, для избежания двусмысленности.
Вменяемые 99.99% пользователей в oct точно не пошлют, да и в hex без явного указания тоже.
Значит берём dec, и баста.
А между сервисами достаточно флагом указать, чего ждём, для каждого конкретного текстового поля.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

291. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –2 +/
Сообщение от Sw00p aka Jerom (?), 08-Авг-21, 20:10 
>Поймите, проблема именно в том, что у нас даже в высшей школе работают только с одной системой исчисления.

а вы задайте еще вопрос почему после 9 идет 10, а не 00, ведь 10 система и все остальные они все с потерей емкости представления чисел.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

577. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +2 +/
Сообщение от Shnorr (?), 10-Авг-21, 20:48 
0..9 = десять значений
после окончания посл.значения переключается разряд:
0000
0001
....
0009
0010

в бытовой практике лидирующие нули мы не пишем.

поэтому 0,1,2..9,10,11

Ответить | Правка | Наверх | Cообщить модератору

578. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Sw00p aka Jerom (?), 10-Авг-21, 21:26 
> в бытовой практике лидирующие нули мы не пишем.

это из-за того, что позиционная система счисления представляет из себя счетчик (колесо с цифрами), с заведомо известным количеством позиций (колес). И все позиции (колеса) в заведомо начальном состоянии в 0, и тем самым когда первая позиция (колесо) из последнего состояния 9 переходит в 0 состояние, то следующая позиция (колесо) счетчика переходит в состояние из 0 (заведомо установленного) в состояние 1, отсюда после 9 следует 10 - вот такое представление. А при таком представлении теряется емкость представления чисел цифрами от 0-9.

пс: Возможно использовать "полную (емкую) позиционную систему счисления" с определением на ней всей арифметики. Что мешает нам использовать эту "полную (емкую) позиционную систему счисления"? Почему мы ее не используем? На эти вопросы я пока не нашел ответов.


Ответить | Правка | Наверх | Cообщить модератору

46. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от пох. (?), 08-Авг-21, 14:52 
> Отбрасывал ноль перед значениями в адресе, но только если указано не более трёх цифр.

оне художнеги, оне так видют.

> Ну вот кто мне расскажет, ЗАЧЕМ в типовых сервисах нужен восьмеричный формат human-readable IP?

потому что ты никогда не угадаешь, где и внутри каких протоколов передается этот human-readable и каким он внезапно может оказаться.

Вариант выкинуть, конечно, самый простой (всегда с риском что адрес продублирован внутри протокола и там он другой в результате), но ничуть не сложно и сделать правильно, с поддержкой восьмиричных форматов.

Здесь умудрились подойдить - художественно! 0010 у них, интересно, тоже не то же самое что 010 ?

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

212. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от PnD (??), 08-Авг-21, 17:01 
"Внутри протокола" обычно достаточно гонять те самые запакованные 4 байта (для v4). Максимум что там можно напутать — порядок битиков. "Сетевой" против того как работает конкретный CPU.
Вероятность успешно пройти тесты с такой ошибкой имеет в районе минус девяти в показателе степени.

А вот отказ от стандартизации библиотек между разными ЯП — он не радует. Нетрудно видеть, что дурости растиражировали кратно количеству языков со своими "велосипедами". И улучшения тут не предвидится: должность "математик-программист" или как там её звали осталась где-то в 1980х годах. Вместе с олимпийским мишкой и прочими сказочными персонажами.
* Не ну попадаются ещё чуваки типа Бернштейна но им наверное выписывать стандартную математику для гошечки/растишки немного западло́.

Ответить | Правка | Наверх | Cообщить модератору

351. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от пох. (?), 08-Авг-21, 23:56 
> "Внутри протокола" обычно достаточно гонять те самые запакованные 4 байта (для v4).

это только у любителей растишки.
А у других, внезапно, в протоколах бывают текстовые представления. Заодно, кстати, избавляющие от "конкретных cpu" и прочих ненужных проблем.

> "велосипедами". И улучшения тут не предвидится: должность "математик-программист" или
> как там её звали осталась где-то в 1980х годах. Вместе с

вот поэтому добро пожаловать в мир "четыре байта хватит всем". В 80е годы на использование бинарных форматов там где они нахрен не упали смотрели очень косо.
А в системы счисления отличные от десятичной - еще кое-где умели.

Ответить | Правка | Наверх | Cообщить модератору

370. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 04:30 
Вы ведь то ли на Питоне пишите, то ли на баше вообще?
Ответить | Правка | Наверх | Cообщить модератору

382. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +1 +/
Сообщение от Аноним (-), 09-Авг-21, 05:48 
> Вы ведь то ли на Питоне пишите, то ли на баше вообще?

Да он вроде лаже под линукс кернель програмить умеет, или умел, но судя по его отношению к линуху, ж@пой. В хайтеке не получится хорошо делать то что вам самому не нравится, пичалька.

Ответить | Правка | Наверх | Cообщить модератору

385. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 05:56 
Я думаю, что, системный программист не написал бы что-то вроде:
>А у других, внезапно, в протоколах бывают текстовые представления. Заодно, кстати, избавляющие от "конкретных cpu" и прочих ненужных проблем.

Может спился?

Ответить | Правка | Наверх | Cообщить модератору

399. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +1 +/
Сообщение от Аноним (-), 09-Авг-21, 08:53 
> Я думаю, что, системный программист не написал бы что-то вроде:

Возможно, "бывший системный программист" точнее отражает суть.

> Может спился?

Деграднул. Сваливание в винду - довольно надежный индикатор и билет в одну сторону. Бывает хуже, как у anomymoustus'а, тот вообще на зло бабушке уши показательно отмораживает.

Ответить | Правка | Наверх | Cообщить модератору

428. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от пох. (?), 09-Авг-21, 12:17 
> Вы ведь то ли на Питоне пишите, то ли на баше вообще?

я немного поторопился родиться, поэтому ни пихона, ни баша в те времена не успели наплодить.
А потом как-то уже и не особенно хотелось всерьез ими пользоваться - никаких существенных преимуществ перед csh и tcl для _моих_ целей у них не было.

То что нельзя было написать на tcl - писал на C.

Ответить | Правка | К родителю #370 | Наверх | Cообщить модератору

514. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Прохожий (??), 09-Авг-21, 22:23 
> А у других, внезапно, в протоколах бывают текстовые представления. Заодно, кстати, избавляющие от "конкретных cpu" и прочих ненужных проблем.

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

> В 80е годы на использование бинарных форматов там где они нахрен не упали смотрели очень косо.

Ох уж эти мне Гансы Христианы.

Ответить | Правка | К родителю #351 | Наверх | Cообщить модератору

274. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 08-Авг-21, 19:45 
> ничуть не сложно сделать правильно

Не то, что не сложно, а невозможно.
017 - это у нас будет 17(dec) или 15(oct->dec)? :D
Число пи в условиях военного времени.

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

350. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от пох. (?), 08-Авг-21, 23:51 
> 017 - это у нас будет

а если в околостандарты посмотреть? 15. А 0017 и 007 будет error, invalid parameter - потому что никакие другие лидирующие нули в адресации ни разу не предусмотрены.

Если уж мы пишем код _проверяющий_ адреса, то он должен именно так работать.

Ответить | Правка | Наверх | Cообщить модератору

354. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 09-Авг-21, 00:28 
0xx - это может быть банальный человеческий кривой ввод, куда более вероятный, чем oct, и в итоге имеем гадание на гуще, куда ни ткни.
Ответить | Правка | Наверх | Cообщить модератору

429. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от пох. (?), 09-Авг-21, 12:20 
> 0xx - это может быть банальный человеческий кривой ввод

может. Но с тем же успехом человек может набрать 101 вместо 110.

набрал не тот адрес - такси привезло тебя в ад, оплата все равно по счетчику.

Ответить | Правка | Наверх | Cообщить модератору

356. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Онаним (?), 09-Авг-21, 00:36 
Я вообще за всё упростить по-максимуму в столь критичной валидации.
Любая не-цифра в октете, лидирующий 0, более 3 цифр в октете, >255 - всё, "идите в задницу, пилить претранслятор под ваш косорылый ввод - так, как вам заблагорассудится". Сразу же исключает любую двусмысленность в _базовой реализации_.
Ответить | Правка | К родителю #350 | Наверх | Cообщить модератору

371. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 04:33 
Надо бы им на гитхаб написать.
Действительно, стандартная либа не должна слишком умничать.
Ответить | Правка | Наверх | Cообщить модератору

402. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –2 +/
Сообщение от Совершенно другой аноним (?), 09-Авг-21, 08:58 
Заодно можно написать, чтобы и язык не умничал.
Ответить | Правка | Наверх | Cообщить модератору

470. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 17:35 
Плохо если вы чувствуюте себя глупее языка на котором пишите.
Ответить | Правка | Наверх | Cообщить модератору

485. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –2 +/
Сообщение от Совершенно другой аноним (?), 09-Авг-21, 19:12 
> Плохо если вы чувствуюте себя глупее языка на котором пишите.

Ну Вам-же мешает слишком умная библиотека. Мне вот, компилятор и библиотека не мешают.

Ответить | Правка | Наверх | Cообщить модератору

524. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 09-Авг-21, 23:22 
Я не писал что мне что-то мешает.
Ответить | Правка | Наверх | Cообщить модератору

534. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Совершенно другой аноним (?), 10-Авг-21, 08:32 
371. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."      +/–    
Сообщение от Аноньимъ (ok), 09-Авг-21, 04:33

> Действительно, стандартная либа не должна слишком умничать.

Ответить | Правка | Наверх | Cообщить модератору

535. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  +/
Сообщение от Аноньимъ (ok), 10-Авг-21, 08:37 
Действительно, не должна.
Ответить | Правка | Наверх | Cообщить модератору

614. "Уязвимость в сетевых библиотеках языков Rust и Go, позволяющ..."  –1 +/
Сообщение от Sw00p aka Jerom (?), 11-Авг-21, 20:43 
>Здесь умудрились подойдить - художественно! 0010 у них, интересно, тоже не то же самое что 010 ?

емкость представления чисел - не не слышал :)

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру