Wednesday, 9 March 2016

Котормочу бот!

Накидал тут быстренько бота для Telegram для перевода с кыргызского на русский или наоборот. Встречайте Котормочу(@kotormochubot)!!!

Реализация простейшая, переводы беру с http://tili.kg. Хотел использовать Google Translate API, но оказалось, что он полностью платный. Подсказывают, что можно посмотреть в сторону PhantomJS и таким образом использовать веб-версию переводчик...или может кто нибудь захочет проспонсировать API %)



А может быть tili.kg захочет похостить сервис и дать прямой API, а то на GAE маленькие квоты, а писать распределенный сервис и искать словарь немного лень %))

Кстати, исходники тут: https://github.com/frydaykg/kotormochu-bot
Может кто-то захочет что-то исправить или улучшить. Жду форков и пулл реквестов. Или хотя бы критики и пожеланий)

Monday, 1 February 2016

Итог нескольких пентестов

Вот несколько интересных итогов после нескольких пентестов:

1) Частый сценарий не пометка капчи пройденной для сессии после ее фактического прохождения. Грешат все поголовно.
2) Начал писать свой SqlMap, слил им 2 базы, вовремя остановился писать.

3) Дописал и начал использовать data-receiver. Правда большинство спасают дефолтные настройки http_only для сессии.
4) Наблюдал зоопарк шеллов и мэилеров на одном из ресурсов.
5) Наблюдал шаланды полные кефали открытых паролей и не соленных хэшей. Меняю все пароли и включаю двухфакторку.
6) Нашел неописанный нигде эксплоит для старого или некорректно настроенного плагина(как в моем случае) для tinyMCE. Может его все таки опубликуют на Exploit DB.
# Exploit Title: MCFileManager Plugin for TinyMCE 3.0.9.2 zip archive upload vulnerability# Google Dork: inurl:/tiny_mce/plugins/filemanager/# Date: 04.11.2015# Exploit Author: Artem Bachevsky# Contact: fryday [dot] kg [at] gmail [dot] com# Vendor Homepage: http://www.tinymce.com/develop/changelog/?type=phpmcfilemanager
# Version: applicable to <= 3.0.9.2 or with misconfigured higher versions
I found a vulnerability in TinyMCE filemanager plugin. It allows to upload executable code(e.g. php file) to server. You can exploit it like that: 1. zip your shell file 2. upload your zip file(filemanager allows to upload zip) 3. unzip your archive 4. PROFIT
Certainly there should be some errors in server settings to expoit it. In higher versions exploit possible with incorrect plugin configuration.
Оставлю и тут. Мое прощение за мой английский, ну и за русский тоже %)
Залил с помощью него шелл. Дальше ничего интересного =)

7) Стал добавлять в рекомендации: правильно настраивать robots.txt, иначе энтропия падает.

8) Видел "интересные" решения с плейсхолдерами в виде названий переменных, которые задаются в админке. Оригинальный способ для раскрытия инфы.

Friday, 29 January 2016

Эти неприятные upload-ы

Всем конечно известно, что нельзя давать загружать пользователю исполняемые скрипты(php, shtml итд) к себе на сайт, а если это требуется то запрещать исполнение в папке их хранения. Но не все это соблюдают.



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

Выручил в этой ситуации html файл + и не проставленный флаг http only для куки сессии. Файлы по умолчанию открываются в браузере и в текущем домене. Загружаем страничку с примером кода с data-receiver. В итоге доступ к пользователю с привилегиями!

Как обезопасится:
1) http only флаг для кук сессии
2) к линкам на прикрепленные файлы добавлять атрибут download.
Например:
 <a href='foo.html' download>link</a>
3) А для не обладателей HTML5 совместимых браузеров и рукастых пользователей(ведь всегда можно скопировать URL и открыть в новом табе) следует добавлять следующий хедер Content-Disposition: attachment;
Это вроде можно настроить в .htaccess для папок с загруженными файлами.

Опять таки меры 2 и 3 можно применить только для некоторых расширений файлов.

[update]
Вот рекомендации OWASP поэтому поводу
https://www.owasp.org/index.php/Unrestricted_File_Upload

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

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