• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

HACKER101

kimnatsau

New member
10.03.2017
4
2
#1
Статья для участия в конкурсена codeby
Многие видели hackerone выложили курс по безопасности веба с видеоуроками как по мне уроки для совсем начинающих но к ним есть практические задания которые оказались очень даже интересными и тут я опишу некоторые решения которые получились у меня.

level 0: Breakerbank

Идем по ссылке
Для просмотра контента необходимо: Войти или зарегистрироваться

Видим простой интерфейс «банка» с возможностью перевода .
1518683375418.png
В сорцах есть интересные комментарии
HTML:
    <!--
        In this level, there are 4 vulnerabilities, falling into the following classes:
        CSRF
        Reflected XSS
        Authorization Bypass/Direct Object Reference

        Have fun!
        -->
и
<!--P.S. You can see a sample bug report for this level here, once you've poked around a bit (Hint: think about how you would transfer funds from one person to another.  Arithmetic!).  There are a number of other hints around.  Watch the source! -->
Значит нам дали четкое задание что и где искать.

CSRF
Сразу видим в форме нет токена проверяем при помощи burp csrf poc generator
1518683531888.png
Работает!
Если ввести в поле amount отрицательное число покажут ссылку на правильно оформленный отчет для этой уязвимости.
Код:
Here's a simple bug report for level 0.  There are quite a few other bugs to find, so don't think you can get away with just this one!

Title: Cross-Site Request Forgery

Severity: Critical

Description: The "Transfer Funds" functionality is vulnerable to CSRF due to no session-specific random token being attached to the form.

Reproduction Steps:
1) Go to the Transfer Funds page
2) Submit a funds transfer
3) Note that the only data transmitted is the destination and the amount.

You can also use the following proof of concept to submit an automatic transfer:
<body onload="document.forms[0].submit()">
    <form action="http://h101levels.appspot.com/levels/0/" method="POST">
        <input type="hidden" name="amount" value="1000000">
        <input type="hidden" name="to" value="1625">
    </form>
</body>

Impact: Due to the simple nature of this vulnerability, it's possible for an attacker to transfer funds from any victim whom he can convince to access a page controlled by the attacker.  In this proof of concept, it's done via form autosubmission in plain view, but this could be performed in a hidden IFrame, leaving the user no clue that an attack has happened at all.

Mitigation: Proper CSRF tokens should be used on all forms.  You can read more here: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

Affected Assets: http://h101levels.appspot.com/levels/0
Можно использовать в качестве примера оформления отчетов в багбаунти.

Reflected XSS

В глаза бросается ссылка для отправления платежа.
Для просмотра контента необходимо: Войти или зарегистрироваться

Но параметр to фильтруется и у меня придумать вектор так и не получилось но если изменить ссылку до вида
Для просмотра контента необходимо: Войти или зарегистрироваться

Параметр amount не фильтруется просто вставляем любой вектор, например это "><svg onload=alert(1)> и радуемся жизни.
Authorization Bypass/Direct Object Reference
Тут я не совсем уверен что они именно это имели в виду но есть ошибка если в POST запрос добавить опцию from то приложение покажет что мы перевели не со своего счета а с указанного нами счета.
1518683868101.png

---- Добавлено позже ----

Level 1: Breakbook
Открываем ссылку
Для просмотра контента необходимо: Войти или зарегистрироваться

Смотрим исходники.
HTML:
    <!--
        In this level, there are 4 vulnerabilities, falling into the following classes:
        CSRF
        Stored XSS
        Forced Browsing

        Have fun!
        -->
CSFR
Снова CSRF правда здесь все сложнее есть токен
Посмотреть вложение 15842
Токен подозрительно похож на md5 пробуем онлайн сервисы. Хеш не находится. Пробуем взять хеш от имени пользователя и он совпадает с тем что есть у нас значит в форму просто подставляется хеш и все будет работать.

Stored XSS
Простой вектор с ссылкой
http://a"onmouseover="alert(document.cookie


Forced Browsing
У каждого поста есть ссылка
Для просмотра контента необходимо: Войти или зарегистрироваться
с айдишником поста пробуем перебирать айтишники и видим посты других пользователей.
Возможно это не баг но в данном случае он полностью подходит под описание.

---- Добавлено позже ----

Level 2: Breaker Profile
Код:
<!--
        In this level, there are 7 vulnerabilities, falling into the following classes:
        Stored XSS
        Reflected XSS
        Unrelated Bonus

        Have fun!
        -->
Stored XSS
Идем в редактирование профиля и видим ссылку на картинку пробуем поставить что-то типа этого:
http://breaker-studentcenter.appspot.com/%22%3E%3Cimg%20src=x%20onerror=alert(1)%3E.png)
Получаем
Посмотреть вложение 15843
Еще одна XSS в форме description добавляем кавычек к цвету
И получаем такой код
Посмотреть вложение 15844

Reflected XSS
Идем по ссылке
Для просмотра контента необходимо: Войти или зарегистрироваться
страница ошибки с выводом данных вставляем простой вектор и имеем XSS:
https://levels-a.hacker101.com/levels/2/?id=5283636286849024%22%3E%3Csvg%20onload=alert(1)%3E

Unrelated Bonus
Не представляю что имели разработчики под этим может перебор адишников интересны ваши варианты..

По идее тут еще 3 баги но что в сторону еще xss что в непонятные бонусы ничего не нашел.
 

Вложения

Последнее редактирование:
13.01.2018
5
0
#2
Что то эта на статью не тянет а уже тем более для конкурса ( Тут просто опсано прохождения тренинга. Написать пост ради поста это не дело
 

kimnatsau

New member
10.03.2017
4
2
#3
Level 3: Breaker CMS

Опять XSS
Код:
<!--
    In this level, there are 6 vulnerabilities, falling into the following classes:
        Various XSS
        Improper Authorization
        Unrelated Bonuses

        Have fun!

        -->
Improper Authorization

В исходниках видим скрипт
JavaScript:
// We should only display the edit link to authenticated admins.
            // http://i.imgur.com/WPaknth.jpg
            var page = window.location.hash.substring(1);
            if(page == '')
                page = 'index';
            var cookies = document.cookie.split(';');
            for(var i in cookies) {
                var cookie = cookies[i].replace(/ /g, '').split('=');
                if(cookie[0] == 'admin' && cookie[1] == '1')
                    document.write('<a href="/levels/3/admin?page=' + page + '">Edit this page</a>');
Код проверяет значения куки и показывает ссылку на админку если оно правильное проверяем и попадаем в админ панель

1518686611874.png

Unrelated Bonus
Мои попытки найти XSS крашили запросы и выдавался стектрейс наверное это то что нужно . В итоге уровень совсем сломался и на все запросы отвечал стектрейсом восстановить не смог можно было зайти под другим Акком и тогда все заработает но было лень.
 
Последнее редактирование:

r0hack

DAG
Gold Team
29.09.2017
441
739
#4
Здравствуйте. Статья полезная, но думаю она не подходит для конкурса, так как это больше writeUP, а не обучающий материал.
 
Симпатии: Понравилось Vander

kimnatsau

New member
10.03.2017
4
2
#5
Что то эта на статью не тянет а уже тем более для конкурса (
Увы если все вставляешь в редактор он не постит приходится кусками причем маленькими а учитывая что форматирование в маркдауне то приходится его переделывать каждый раз(((((

---- Добавлено позже ----

Здравствуйте. Статья полезная, но думаю она не подходит для конкурса, так как это больше writeUP, а не обучающий материал.
Без проблем уберу с конкурса только дайте до конца ее выложить..
А еще лучше скажите как сделать чтоб можно было за раз все в один пост писать?
 
Последнее редактирование:

kimnatsau

New member
10.03.2017
4
2
#7
А почему не получается я не понял ? Ошибка какая-то или что возникает ?
да ошибка на экране что при предвариательном просмотрел пишет невнятное посмотрите в консоли в консоли 402 draft
о новая ошибка
Failed to load resource: the server responded with a status of 403 ()
эта ошибка возникает при предварительном просмотре
 
Вверх Снизу