Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Shrek mp3, Intertat crack, варган, сервера и XSpider

Всем привет!

«Шрек», надеюсь, успели посмотреть и полюбить? Если нет, срочно купите кассету, сходите в кинотеатр или воспользуйтесь любым другим способом посмотреть фильм.

Shrek. Морда лица

Речь, собственно, не о Шреке и не о фильме. После просмотра фильма у меня возникло сильное желание заиметь в свой плейлист некоторые из саундтреков «Шрека», особенно «I have loved» и «Hallelujah». Оказалось, проблем с этим никаких нет — было бы желание и доступ в интернет.

В общем, треки из этого симпатичного мультфильма, в приличном качестве, можно скачать с некого эстонского сайта, а слова, чтобы в приливе чувств подпевать — найти на PopLyrics.Net. Enjoy!

InterTAT

В Казани, где я живу, как и во многих других городах, открытие каждого нового сайта, крупнее pet-home-page — событие.

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

28 декабря у нас открылся сайт электронной газеты Татарстана «Intertat». Сайт абсолютно уродский, как с точки зрения дизайна, так и с точки зрения наполнения и выбранного названия.

Первые два пункта становятся очевидными, стоит только взглянуть на сайт, чем мне не понравилось название, я скажу. Написано оно по-английски и только по-английски, из чего я делаю вывод, что для того, чтобы прочитать его по-русски, его надо перевести. Так вот. Слово «inter» переводится, как «хоронить», а «tat» — «плести кружево». Как корабль назовешь, так он и поплывет. Сколько не плети кружево, а проект себя уже похоронил. :)

Впрочем я отвлекся. Дыру в этом проекте я нашел так быстро, что мне даже скучно стало. Попробуйте, например, перейти в раздел «политика», а потом поставьте апостроф после URL’a и нажмите «Enter». Что видите на экране?

Я увидел вот это:

DB Error: unknown error SELECT * FROM news_xml WHERE ((type=2 OR type=1 OR type=5 OR type=7) AND ( sid ~~ 'ra'%') ) order by date DESC limit 10 OFFSET 0 [nativecode=ERROR: Unterminated quoted string ]

Как видно, апостроф не был заэкранирован и попал в текст как он есть. Что это нам дает? Сейчас объясню.

В вебе используется не так много видов баз данных, в основном это MySQL, PostgreSQL и Oracle. Слово OFFSET и оператор ~~ из перечисленного характерны только для Postgres. В SQL-диалекте этого СУБД есть, в отличие от того же MySQL, приятная возможность писать несколько запросов в строку, разделяя их через точку с запятой.

Таким образом, достаточно вклиниться в этот запрос так, чтобы он оставался верным с точки зрения синтаксиса и вставить в середину все что душе угодно, например, DELETE, UPDATE или, может быть, INSERT.

Сделать это нетрудно — нужно закрыть апостроф, обе скобки, поставить точку с запятой, вписать свой запрос, снова поставить ; и записать первую часть SELECTа с двумя открытыми скобками и апострофом. Вот, например, кусок, который нужно подставить в URL, чтобы получить новость с ID’ом 277:

'));SELECT * FROM news_xml WHERE id=277 AND (('%'='

Легко видеть, что, после подстановки запроса в строку, Postgres на вход получит следующее:

SELECT * FROM news_xml WHERE ((type=2 OR type=1 OR type=5 OR type=7) AND ( sid ~~ 'ra')); SELECT * FROM news_xml WHERE id=277 AND (('%'='%') ) order by date DESC limit 10 OFFSET 0

Еще интересной является идея попробовать сделать CREATE USER и законнектиться к базе данных снаружи, если администратор, конечно, оставил возможность соединения с Postgres извне. Хочется проблем — можете попробовать сделать это самостоятельно. :)

Что не так на картинке? Смотреть, после загрузки, долго и внимательно, до полного прозрения.

Ссылку прислал Romantik

Есть на земле нормальные программисты, а есть маньяки, вроде меня. :) Я где-то уже вскользь упоминал о Веб-сервере, написанном на PostScript. Оказывается, автор не одинок в своём стремлении приложить руки туда, где этого никто не ждет.

Вот вам прекрасная возможность убедиться в работоспособности сервера на AWK, Shell, DD/Sh, ну и на PostScript, конечно. :)

Какие там языки, стандартно входящие в дистрибутивы Unix, еще остались не у дел? Языки Perl и уж, тем более, C++ не предлагать — вот и вот. Как же сложно выпендриться в наше время... :)

Люблю сканеры безопасности. За юмор и проницательность. На скриншоте — результат сканирования одной из наших офисных машин сканером XSpider.

XSpider

Как видно на машине используется сервер Pure-FTPD версии 1.0.4, причем это была самая последняя версия этого сервера на тот момент, а сканер «предсказывает» уязвимость в версии 2.0.4.281. Разработка наших программистов, не иначе ноу-хау какое-то, позволяющее узнавать об уязвимостях в продуктах задолго до их появления на свет.

Хочу внести ясность по поводу Shit Streamer. Вы можете как угодно просматривать использовать и исследовать его код. Но не надо меня заваливать письмами с просьбами рассказать, как это все работает, почему я сделал именно так и что значит

if (($str = $this->{$this->meths[$i]}($fp, $server, $query)) === true)

По PHP есть прекрасная дока, я распространяю код в открытом виде, дал кучу ссылок и сделал тестовый режим специально для тех, кто хочет увидеть, как именно происходит обмен данными. Еще и объяснять каждому, как это работает я не могу. Sorry.

Варган

Есть трудности с тем, что бы подарить на День рождения любимому сисадмину? Каждый год дарить пиво или мухобойку (чтобы отгонять юзеров), по-моему, не оригинально. Я предлагаю походить по магазинам экзотических музыкальных инструментов и найти варган.

Помните «бдынь-бдынь-бдынь» в нанайских народных? Вот! Это именно варган и есть. Очень удачный инструмент для камлания над мертвым сервером. На следующий год можно, в комплект, подарить бубен обшитый сырой кожей оленя. Думаю, любой админ будет рад такому подарку.

«Спасибо» за идею мне писать в мыло или форум.

У меня все! До следующей недели!