Виявлення логінів через Abuse of Functionality уразливості

22:46 30.01.2009

За останні декілька років я багато разів зтикався з функцією деяких сайтів (передусім поштових сервісів і крупних проектів), яка дозволяє перевіряти чи вільний даний логін. Щоб користувач міг створити унікальний логін при реєестрації на сайті. І ось у березні 2008 року, як я розробив свою програму Brute force login identifier (для виявлення логінів, з чим мені доводиться зтикатися під час секюріті аудиту), я вирішив провести детальне дослідження функції перевірки логінів.

Дана функція дозволяє нападнику виявляти робочі логіни в системі (login enumeration). Тобто наявність даної функції на сайті призводить до появи Abuse of Functionality уразливості. Приклади подібних уразливостей я наводив зокрема на hulu.com та на www.youtube.com.

Розглянемо алгоритм виявлення логіна на YouTube.

Якщо ввести в формі реєстрації (http://www.youtube.com/signup) в полі Username перевіряємий логін і натиснути Check Availability, система зробить перевірку і надасть відповідь (ця функція реалізована на AJAX). Якщо відповідь “Username unavailable” - значит такий логін існує в системі, якщо відповідь “Username available!” - значить такого логіна немає в системі.

Тобто потрібно буде перевірити перелік логінів за допомогою функції Check Availability й відібрати ті з них, для яких відповідь буде “Username unavailable”. І створити список робочих логінів.

У випадку якщо дана функція немає захисту від автоматизованих атак (тобто має місце Insufficient Anti-automation уразливість), як це є у більшості випадків, це дозволяє проводити автоматизоване виявлення логінів в системі. Що може бути зроблено за допомогою брутфорсерів логінів, наприклад, моєї програми Brute force login identifier. В подальшому виявлені логіни можуть бути використані для визначення паролів користувачів сайта.


Leave a Reply

You must be logged in to post a comment.