Для пошуку вразливостей всі засоби хороші, а чим гарний фаззинг? Відповідь проста: тим, що він дає можливість перевірити, як себе поведе програма, що отримала на вхід явно некоректні (а часто і взагалі випадкові) дані, які не завжди входять в безліч тестів розробника.

Некоректне завершення роботи програми в ході фаззинга дозволяє зробити припущення про наявність уразливості.

У цій статті ми:
  • продемонструємо, як фаззить обробник JSON-запитів;
  • використовуючи фаззинг, знайдемо вразливість переповнення буфера;
  • напишемо шеллкод на Асемблері для експлуатації знайденої уразливості.
Будемо розбирати на прикладі вихідних даних завдання минулого NeoQUEST. Відомо, що 64-хбитный Linux-сервер обробляє запити у форматі JSON, які закінчуються нуль-терминатором (символ з кодом 0). Для отримання ключа необхідно надіслати запит із вірним паролем, при цьому доступу до вихідного коду і до бинарнику серверного процесу немає, дано тільки IP-адресу і порт. В легенді до завданням також було зазначено, що MD5-хеш правильного пароля міститься десь у пам'яті процесу після наступних 5 символів: «hash:». А для того, щоб витягнути пароль з пам'яті процесу, необхідна можливість віддаленого виконання коду.

Читати далі →

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



Програмувати швидко — це легко! Так вважає інженер-програміст компанії Google, який всі публікації в своєму блозі підписує лаконічним «Макс». Макс також працює головним архітектором, ком'юніті-менеджером і реліз-менеджером в Bugzilla Project. Ми в Alconost вразили і перевели його поради про те, чи як навчитися програмувати з космічною швидкістю.

Якщо обговорювати з розробниками складність коду, вони часто говорять, що хочуть писати простий код, але із-за тиску дедлайнів і більш глибинних причин у них не вистачає часу або знань для того, щоб виконати завдання і оптимізувати рішення до максимальної простоти.

Вони, звичайно, мають рацію в тому, що в умовах стислих термінів розробники, як правило, будуть писати складний код. Втім, дедлайни не повинні призводити до складності. Замість фрази «Цей дедлайн завадив мені написати простий код» можна вимовити рівноцінну: «Я недостатньо швидко програмують, щоб писати просто». Тобто чим швидше ви як програміст — тим менше впливу на якість вашого коду мають дедлайни.

Тепер давайте розберемося, як, власне, стати швидше? Може, це вроджене магічне вміння? Треба бути «розумнішими» інших, щоб бути швидким?

Ні, це взагалі не магія і не вроджений дар. Насправді існує лише одне просте правило, рахуючись з яким, з часом ви вирішите проблему:

Читати далі →

ChairInput. Пишемо гру в Unity, керовану за допомогою віртуальної клавіатури Android. Проблема з кутом огляду камери

Всім привіт, я написав клавіатурний тренажер під Android в Unity3D, він не сильно заточений під особливих дітей, а призначений для широкого користувача (ну я так думаю). І в цьому пості я хочу розповісти про проблему перекривання частині екрана клавіатурою і способи її вирішення.



Читати далі →

Аналіз взаємодії мобільних Android-додатків з API соціальних мереж Facebook, Instagram, ВКонтакте

Не секрет, що більшість великих сервісів на серверній стороні використовують який-небудь API (Application Programming Interface) для взаємодії з різними клієнтами.

«очній ставці» NeoQUEST-2016 Максим Хазов розповів про різні підходи до визначення та використання прихованого серверного API-функціоналу на прикладі таких популярних сервісів, як ВКонтакте, Instagram, Facebook.

У даній статті зупинимося на основних моментах доповіді і поділимося усіма електронними матеріалами: відеозаписом виступи, презентації, а також демонстраціями атак для кожної розглянутої соціальної мережі (все під катом).

Натякніть: «прогулянки» по соціальним мережам ще чекають учасникам NeoQUEST-2017, реєстрація на online-етап якого йде повним ходом!

Читати далі →

Будуть роботи стояти в пробках?

Ця історія почалася з того що я застряг у пробці на хайвеї, не особливо великий, але півгодини простояв практично на місці. І, як це часто буває, пробка розсмокталася сама по собі — не було попереду ні аварії, ні ремонту, машини просто в якийсь момент почали рухатися швидше, ще швидше, і все — вільна дорога попереду.
Чим зазвичай займаються в пробках? Ну хто-чим і коли-як, а я в той день був у мирному філософському настрої — просто сидів і розмірковував. Згадав зокрема посада на Гиктаймс про робомобилях де в коментарях бурхливо порівнювали манеру водіння людей і роботів і в кінці здається прийшли до висновку, що майбутнє на дорогах за AI, при ньому і рух стане безпечніше і середня швидкість зросте. Цікаво, а пробки тоді будуть? Іншими словами, наскільки пробки зумовлені зовнішніми (об'єктивними) обставинами, і наскільки ефектом натовпу, агресивною або, навпаки, гальмівної манерою водіння? Заодно згадалася прочитана колись книга де стверджувалося що моделювання дорожнього трафіку — одна з найбільш складних математичних завдань, яка досі не вирішена. Ну це напевно давно вже неправда, читав я це давно і книга вже тоді була не новою, зараз вже напевно і теорії правильні написали, і на комп'ютерах своїх все порахували. Хоча… пробки ж залишилися? Загалом, політ фантазії було вже не зупинити.
Отже, під катом ми спробуємо побудувати більш-менш осмислену модель руху транспорту на дорозі і, якщо пощастить, спробуємо змоделювати різницю у водінні водія-людини і AI. Я звичайно віддаю собі звіт, що цією проблемою професійно займаються цілі організації і взагалі дуже розумні люди, але тим цікавіше. І взагалі, ставте собі нереальні цілі.
І ще одне — я переконаний прихильник думання головою, тому в цьому пості комп'ютерного моделювання не буде, взагалі зовсім не буде, тільки хардкорний олівець і папір.

Читати далі →

Реєстрація відкрита або NeoQUEST, ти просто космос

Вжух — і ми вже відкрили реєстрацію onine-етап щорічного змагання з кібербезпеки NeoQUEST-2017!

В цьому році online-етап NeoQUEST пройде з 1 по 10 березня: захопимо 3 дні вихідних! Про те, які завдання чекають на учасників на цей раз, і при чому тут космос — читаємо під катом.

Читати далі →

Відкриті онлайн-курси від Університету ІТМО

Не так давно в нашій добірці корисних матеріалів йшлося про вступ до внз. Однак пройти навчання у викладачів Університету ІТМО можна і без надходження — досить записатися на відкритий онлайн-курс Університету і спробувати свої сили в програмуванні, фотоніці, реології, оптиці та інших напрямках, які розвиває Університет ІТМО. Можливо, такий курс допоможе комусь визначитись з напрямком навчання і майбутніх досліджень або краще підготуватися до вступних випробувань (що особливо актуально, наприклад, для вступників у магістратуру).


Читати далі →

Іспит для майбутніх російських хакерів» у Московському Політесі

І знову здрастуйте. Зазвичай я пишу статті в якості розробника, але сьогодні хочеться поділитися досвідом проведення іспиту з інформаційної безпеки в Московському Політесі. По-моєму вийшло досить цікаво. Завдання навіть може бути корисним початківцям тестувальникам і пентестерам. Але спочатку я розповім трохи про те, як проходили заняття протягом семестру — щоб було зрозуміло, як ми дійшли до життя такого.



Читати далі →

Гей, телевізор, ти що, самий «розумний»?

Про небезпеку використання «розумних» телевізорів чули, напевно, усі. Кажуть, що вони спостерігають за власником і прослуховують його розмови. Але це не турбує більшість користувачів, які продовжують спокійно заповнювати форми авторизації прямо на екрані TV.

Ми вирішили перевірити, чи реально зробити щось цікаве з розумним телевізором, не маючи фізичного доступу до нього (спойлер: реально!), і готові розповісти про це на прикладі розбору завдання з NeoQUEST!

Читати далі →

Про хаскелль для самих маленьких на прикладі задачі з codefights

КДПВ (у поданні художника)
Якщо ви цікавитеся функціональним програмуванням або навіть намагаєтеся його потихеньку освоїти то вам, напевно, не раз доводилося чути, що головною відмінністю від звичного вам імперативного підходу є той факт, що програми будуються від загального до деталей, а не навпаки. Тобто спочатку ви визначаєтеся з тим, що ви хочете отримати, а потім вже — як цього досягти. Така проста, здавалося б, думка зазвичай не дає мозку спокою і викликає множинні фрустрації у намаганнях написати що-небудь корисне. Якщо ця історія про вас, або вам просто цікаво трохи навчиться хаскеллю і ФП продовжуйте читати, і я покажу вам, як все просто. Стаття в стилі «колись пояснювати, пиши».
Читати далі →