Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возможности Javascript (https://javascript.ru/forum/misc/80324-vozmozhnosti-javascript.html)

Karen989898 23.05.2020 00:09

Возможности Javascript
 
1111111111

laimas 23.05.2020 08:27

Цитата:

Сообщение от Karen989898
ответ от сервера приходит, выводит сообщение что указал

Это нужно чтобы серверный язык мог бы выполнять JS. Хотя конечно же никакой сервер не станет выполнять у себя сценарии, которые ему навязывают извне. А вот чтобы сервер принял по URL такое, это должно быть параметром запроса, например форма отправляет такие данные. А далее уже зависит от сайта, его направленности. Например здесь форум, который рассматривает различные сценарии, но выполняться будут только те, что обрамлены ВВ-кодом и не на странице непосредственно, а в песочнице. В коде же вставленном непосредственно на странице во избежание XSS опасные символы будут заменены на html сущности следовательно на клиенте он выполняться не будет. Вот так размещена ваша строка кода на станице этой:

<script>alert(27213123123123)</script>

Karen989898 23.05.2020 11:03

111111111

laimas 23.05.2020 12:11

Вы как разработчик регулируете что сохранять на сервере присланное извне, а что нет. Можете вырезать запрещенное, можете нет, заменяя опасное на показанное выше. Конечно способов атак много и вопрос безопасности гораздо сложнее, рассказывать обо всем, это долго, так что "поиск по паутине" в помощь, читайте, изучайте.

Malleys 23.05.2020 12:40

Karen989898, вы можете использовать заголовок Content-Security-Policy, чтобы указать, что загрузка скриптов и прочего должна происходить только с конкретного сервера, содержащего доверенный код или прочие ресурсы или не происходить вообще.

Также вам наверняка будет интересно узнать, что у элемента <iframe> есть атрибут sandbox.

Nexus 23.05.2020 13:09

laimas, Malleys, мне кажется автора интересуют возможные способы "применения" xss-атаки, а не способы защититься от нее.

laimas 23.05.2020 13:27

Цитата:

Сообщение от Nexus
автора интересуют возможные способы "применения" xss-атаки, а не способы защититься от нее

Ну можно и такое предполагать, если "уязвимость имеется и можно с ней дальше работать", это желание ломать.

Karen989898 23.05.2020 15:41

111111111

Karen989898 23.05.2020 15:42

11111111

laimas 23.05.2020 15:46

Цитата:

Сообщение от Karen989898
да конкретно интересует попытки получения информации с сервера

Пытаетесь взломать? За это бьют по попе. ;)

Karen989898 23.05.2020 15:50

1111111

laimas 23.05.2020 15:55

Цитата:

Сообщение от Karen989898
хотя бы простых которые дают ту информацию которую простой пользователь не должен получить без прав доступа.
Версия базы данных которая используется или что то вроде этого...

А зачем пользователю версия БД, какой язык используется сервером и прочее о нем? Нормальный хозяин хоста никогда не разрешит выполнять у себя скрипты, подключать чужие html/js файлы без контроля, и информацию о хосте рассказывать не будет.

А вот попытки узнать все это через уязвимости, это и есть попытки взлома. Правда JS не для каждого серверного языка опасны, они просто не смогут исполняться.

Karen989898 23.05.2020 16:27

Но проверить это каким нибудь скриптом js можно?

laimas 23.05.2020 16:41

Karen989898, что вы хотите проверить?

Malleys 23.05.2020 16:49

laimas, что опять потянуло стаскивать чужие штаны?

Цитата:

Сообщение от Karen989898
К определенному сайту в его url добавляю
<script>alert(27213123123123)</script>
и ответ от сервера приходит, выводит сообщение что указал.
П

Так это не на сервере JS-код выполняется, а в твоём браузере. Ну ещё в чужих браузерах, если это опубликовывается или отправите кому ссылку с кодом. (Вот тогда можно говорить о получении чужой информации)

Karen989898 23.05.2020 16:50

111111111

Malleys 23.05.2020 16:54

Цитата:

Сообщение от Karen989898
Я хочу так же отправить другой какой нибудь скрипт, вместо alert и проверить сработает ли он.

Проверяйте!

laimas 23.05.2020 16:59

Цитата:

Сообщение от Karen989898
после запроса который я писал - <script>alert(27213123123123)</script> пакет от сервера ко мне приходил уже с результатом

Хотел бы я посмотреть на сервер, который это бы выполнил и вернул результат. Вы можете попытаться "скормить js" серверу на Node.js, но такое <script>... он уж точно не будет выполнять как серверный код, если бы даже вы и нащупали брешь. В случае же иного языка, это вообще для сервера сигналом к действию являться не будет.

Malleys 23.05.2020 17:06

Цитата:

Сообщение от laimas
тебе что засранец нужно, или просто шило в заднице тебе покоя не дает?

Не понял вопроса, смени пароль, а то от твоего имени иногда идёт всякое порно и угрозы!

Цитата:

Сообщение от laimas
Вы можете попытаться "скормить js" серверу на Node.js, но такое <script>... он уж точно не будет выполнять как серверный код, если бы даже вы и нащупали брешь.

И только при помощи eval или vm.runInNewContext. Тут идёт речь о выводе в браузер, перевожу на PHP
<?php

echo $_GET['q'];
т. е. это не на сервере выполняется, а просто вставляется текст на страницу, в браузере это воспринимается как полноценный JS (если есть <script></script>), которой и выполняется, когда делаешь соответствующий запрос.

laimas 23.05.2020 17:12

Цитата:

Сообщение от Malleys
И только при помощи eval или vm.runInNewContext.

Я не знаю Node.js, и выполнит ли он через eval <script></script>. Но думаю разработчик уж точно бы не стал такое делать на сервере ради вывода в браузер.

Malleys 23.05.2020 17:20

Цитата:

Сообщение от laimas
Я не знаю Node.js, и выполнит ли он через eval <script></script>. Но думаю разработчик уж точно бы не стал такое делать на сервере ради вывода в браузер.

Конечно же не выполнит, если только специально не написать выполнение значения параметра запроса при помощи eval или vm.runInNewContext, что совершенно неправильно делать, поскольку открывает полный доступ к серверу.

laimas 23.05.2020 17:25

Цитата:

Сообщение от Malleys
Конечно же не выполнит

А он то о чем писал, что "перехватывал ответ после исполнения", а не наблюдал его в браузере.


Часовой пояс GMT +3, время: 05:42.