Sunday 29 November 2015

SSRF

Нашел SSRF на http://regex.info/exif.cgi, причем искал абсолютно другую уязвимость. Пытался найти XSS через EXIF ну или SSRF через EXIF, а вышло вот как =)

Существует вообщем там возможность посмотреть exif данные своей картинки. Можно загрузить, а можно дать ссылку на изображение. Картинка судя по всему тянется LWP.

Например:
> file:/etc/passwd
file:/etc/passwd doesn't seem to be an image file: Unknown file type

> file:/bin/bash
Описание EXE файла с размером, CPU  и архитектурой.

> gopher://localhost:22
gopher://localhost:22 is a web page, not an image.

> gopher://localhost:9896
couldn't fetch gopher://localhost:9896: [500 Can't connect to localhost:9896]


То есть можем допустим просканировать внутреннюю сеть на предмет открытых портов. Кстати изнутри их на 2 больше чем снаружи.
Или затестить мой проект for fun eggplant-tag, правда не совсем по назначению, но чем не способ) Вот тут можно его попробовать: http://eggplant-tag.appspot.com/

Или вот результат для вот этого тега:
2015-11-28 13:35:12.451140
Remote address: 67.221.35.252

Host: eggplant-tag.appspot.com
User-Agent: Jeffrey's Exif Viewer (http://regex.info/exif)
X-Appengine-City: san jose
X-Appengine-Citylatlong: 37.339386,-121.894955
X-Appengine-Country: US
X-Appengine-Region: ca


Говорят, что gopher-ом можно формировать любые TCP пакеты, но я так не умею. И что то пока не до этого =). 

Ну а вообще можно использовать все протоколы, которые поддерживает LWP через GET.

Если кто умеет такое использовать -- расскажите. Уязвимость мы с автором вроде пофиксили, в два этапа...но может, что  еще открытым осталось.

Thursday 22 October 2015

Data receiver 2015

Иногда требуется получить какие-то с веб страницы, когда с ней взаимодействует человек. Например, если это XSS. А еще удобнее получить эти данные на почту.

Для решения этой задачи несколько лет назад я написал утилитку, которую захостил на Google App Engine. Пришло время делится. Утилитка немножко приведена в порядок перед подачей на стол =)

Как пользоваться:
1) Тянем себе репозиторий https://github.com/frydaykg/data-receiver;
2) Создаем себе application на https://appengine.google.com/ или развертываем подходящую среду, где нибудь еще;
3) Меняем файл app.yaml и settings.py под себя;
4) Аплоадим приложение;
5) Используем приложение;
6) PROFIT!!!

Что делать если приложение не устраивает!? Вариантов несколько:
1) Клонируем репозиторий, коммитим нужный функционал, кидаем пулл реквесты;
2) Пишем свое приложение, разочаровываемся, возвращаемся к пункту 1;
3) Выпиваем яду и не возвращаемся =)

Что по хорошему можно добавить:
1) Возможность расширения количества почт с которых идет отправка;
2) Возможность персистить данные в базе и  потом просматривать в своем личном кабинете.

А как пользоваться? Читаем все в src\default.html или README!

Tuesday 11 August 2015

Почему надо делиться знаниями

В школе мне не нравилось делиться знаниями. Казалось, что обладая локально-уникальными знаниями, ты становишься этаким Гарри Поттером или Нео, которому все можно.
Отчасти это так и иногда это даже хорошо, но обычно до определенного этапа, на котором ты замораживаешься и все. Все, что ты дальше делаешь, так это торгуешь своей кучкой знаний. никакого творческого роста, зато мы звёзды!

Благо мое мировоззрение изменилось, и теперь передавая свои знания, я могу быстрее находить себе подмогу, замену для повышения своей позиции, получать новый опыт во время дележки и удовлетворение от того, что делаешь мир чуточку лучше %) Правда все это не учитывает случаев вселенской несправедливости, но куда без нее.

Поэтому держите, хороший обобщенный материал по масштабируемым и распределенным системам:
http://www.aosabook.org/en/distsys.html

По крайней мере дальше понятно куда копать и что использовать :) Приятного прочтения

Monday 27 July 2015

В чем ошибка на фото?

Одна ошибка стопроцентна, остальные можно обсудить. Жду ответов в комментах :)


Friday 17 July 2015

XSS challenge

Прикольная браузерная игра от Google. Держите https://xss-game.appspot.com/
Прохождение занимает минут 40, в последнем самое сложное было:


Хоть квест и простенький, но все равно пройти стоит :)

Как будет время, напишу о кризисе кыргызской веб разработки и о том как они множат баги и соорудили себе хрень с кучей хранимых XSS.

Wednesday 24 June 2015

Баунти: райское наслаждение или баг хантинг

Сейчас развелось очень много программ по поощрению поиска уязвимостей за которые выплачиваются компенсации. Но для получения профита не обязательно находить уязвимость и не обязательно профит будет деньгами. Например, как то я отписал в Beeline, что неплохо было бы позволять использовать платежные гейты банков при нулевом балансе, а то выходила странная фигня, вроде можешь пользоваться сайтом билайна, начинаешь оплату картой и встаешь на этапе выбора способа верификации оплаты. Через какое-то время предложенную фичу ввели, я получил возможность поплнять свой счет в любом месте с GPRS. А кто то  в билайне может получил премия за увеличение количества платежей %)) 


Это был пример нормального отношения. А бывают ребята, которым пишешь о уязвимостях на их ресурсах, а в ответ -- тишина. Возможно дело в том, что письмо приходит к низкоквалифицированным разгребателям почты и оно уходит с пометкой "какая-то фигня".  Наверное надо в таких случаях стоит писать не только в info@company.com, а еще и в cto@company.com, и может будет результат =) И высшим наслаждением в таких случаях было бы исправление уязвимости, а не 300 звездочек, новый уровень в Candy Rush или 100$ на счет.

Ищите, пишите и получайте удовольствие!

Tuesday 23 June 2015

Google summer of code

Есть такая штука -- Google summer of code. Проект от гугл в рамках, которого студенты пишут функционал опен-сурс проектов под надзором менторов за деньги(5000$ за 3 месяца).

Проекты попадаются очень интересные. Правда я за свою студенческую жизнь ни разу не прошел со своим proposal туда, а  подавал я в следующие проекты SimpleCV и OpenCV , видимо зацепило меня в свое время компьютерное зрение. Опыт был для меня уникальный, писать какое-то предложение, на английском, обсуждать его с кем-то...интересно, но судя по результатам -- я не справился. Забавно, что одного из менторов, я потом нашел в ретвите кого-то из друзей. Фолловьте, попадаются интересные вещи у нее.

А кто то из читателей участвовал? Кто проходил? Как все прошло?

Friday 19 June 2015

Еще пара прОмок от Aviasales

Как то я писал о том как не надо устраивать конкурсы. Думаю, что обоюдные выводы были сделаны. А вот некоторое время назад, ленту заполонили репосты вот такого вида

Ну вы их видели =) Ну и я по привычке решил глянуть, что там стоит за конкурсом.
Логика дизайнеров конкурса была такая:
1) Проходит тест
2) Получает результат
3) Предлагается расшарить результат
4) После выбора социальной сети открывается окошко для шаринга
5) По закрытию окошка, выпадает штука, где просят вбить почту, для участия в конкурсе

Пункт 4 и способы учета и накручивания ссылок мы проходили в прошлый раз. А пункт 5 выглядел новым и необычным. Исследуем!

Формируем curl запрос
Узнаем, что вариантов ответа не очень много: все ок, такая почта уже была, это не корректная почта. И при этом не требуется никаких дополнительных заголовков! Красота!
Участвующие в конкурсе почты где-то хранятся и для каждой отсылается письмо. А что если поменять регистр первого символа?!(gmail не учитывает регистр) Все ок, письмо пришло. А что если вставить точку разделитель?!(gmail и их игнорирует) Все ок!!! Кайфуем!

То есть для одной почты длиной N(для простоты возьмем вариант только с буквами), мы можем cгенерировать 2^(2*N - 1) вариантов почты. Что много! Потенциально можно забить их почтовый пул и потенциально выиграть их всех))

Потом пошли фиксы. Стали учитывать регистр, точки, сделали обязательными какие-то куки. Но все закрыть не смогли, оставлю это на сладкое =)

Так что ребята, проектируйте тщательнее или заказывайте у меня аудит ваших промо-акций %)

P.S. Ну а еще такая штука была в соседней промке с Санкт-Петербургом.

Thursday 19 March 2015

Google Code Project shutting down: namba-serials-downloader и diesel-api

Вот и пришел конец славному репозиторию на Google Сode. В свое время я там хостил два домашних проектика, в реальности простенькие скрипты. Но воспоминания о них греют мне душу ламповым теплом. Поэтому  я о них немножко расскажу, чтобы небыли забыты.


namba-serials-downloader
Как следует из названия - это штука для скачивания сериалов с намбы, когда то работала и позволяла смотреть мне сериалы, на моем клевеньком Nokia 5500. Вот это действительно лампово %) Все искомые паттерны вынесены в настройки, так что это оставляет шанс на работу скрипта и сейчас...наверняка с небольшими изменениями. Правда в эпоху скоростного интернета и ts.kg вряд ли это кому то нужно =)
Там даже в вике есть инструкция по пользованию =)

diesel-api
А эту штуку я использую до сих пор. С помощью нее я когда-то грабил корованы брутил пароли(набрутил пару тысяч пар, делая максимум 6 штук на логин), случайно устанавливал рекорд посещаемости, удалял массово сообщения и накручивал рейтинги себе и знакомым %)
В этом скрипте есть все: магические строки, примитивное кэширование, спагетти код! Но это все работает и приносит кучу фана! Пользуйтесь на здоровье!
Где-то должен быть еще метод для посылки личных сообщений, когда мне было не лень оповещать людей с небезопасными паролями, но он где-то потерялся.

Вообщем в связи c закрытием репозитория на Гугл коде, я пользуюсь встроенным механизмом переезда и переношу это все на github. Форкайте, чекауйте, пользуйтесь на здоровье!

PS А еще там была такая забавная штука, как evolution-mutation, за авторством Олега Пузанова и Андрея Похилько. Тоже забавно с ней поиграться :)

Sunday 15 March 2015

Quicksort partitions

Зарубился я тут в сортировки. И даже отгреб от этого головную боль.

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

Видно, что он плохо себя ведет на отсортированном массиве, постоянно вызывает swap на один и тот же индекс. Улучшим:

А теперь сравним с Хоаром:
А теперь глянем на время работы. Первый параметр размер проверяемого массива, второй seed для генератора случайного массива:
Вот так вот. То ли Ламуто - ламото, то ли я ламото  -- криво заимплементил %)

Friday 20 February 2015

Све-то-фор!

Вот Svetofor.kg до сегодняшнего дня присылал спам на почту, и предлагал отписаться во такой ссылкой:
http://svetofor.kg/index.php?dispatch=newsletters.unsubscribe&list_id=1&s_id=6920&key=
и оно конечно же не отписывалось!
и стоило мне сделать вот так

и следующее письмо пришло с такой вот ссылкой:
http://svetofor.kg/index.php?dispatch=newsletters.unsubscribe&list_id=1&s_id=6920&key=ea66f147f9dcbbe2049c7d4d438da2b2

Благодарю за своевременное реагирование! %))

Update
А дальше были попытки отписать всех от назойливой рекламы. Декрипт хэша не удался. Хэш два раза не работает.
Стал смотреть на чем базируется магазин. Оказалось на http://www.cs-cart.com/. Загуглил -- нашел модуль ответственный за рассылки и формирование. Оказалось что формируются случайные ключи на каждую рассылку для каждого пользователя. Пришлось смирится и бросить это все :)