Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/avin/jssniffer

jsSniffer
https://github.com/avin/jssniffer

Last synced: 1 day ago
JSON representation

jsSniffer

Awesome Lists containing this project

README

        

# jsSniffer

Демо реализация js сниффера который может быть внедрен на страницу для отлова введенной пользователем информации на странице.
Внедрение может проходить либо инъекцией в пакет (к примеру на роутере или прокси сервере) или непосредственно добавление сслыки
js скрипта в саму страницу. В скрипт также добавлено шифрование для передачи данных в скрытом виде. Данный скрипт был создан лишь в
целях демонстрации данного вектора атаки. Код является сильно избыточным и является прототипным.

## Сборка и установка

### JS-клиент
При сборке следует обратить внимание на конфигурационный файл который содержит ссылку на сервер приёмник и публичный ключ с
помощью которого происходит шифрование исходящей информации.
Для сборки нам потребуется webpack.
```sh
$ npm install -g webpack
```

Переходим в директорию ./client и подгружаем необходимые для сборки компоненты
```sh
$ cd ./client
$ npm install
```

Перед процессом сборки js-скрипта укажите необходимые настройки (публичный ключ шифрования и ссылку на сервер-приемник) в
файле ./client/js/options/options.es6
После этого запускаем непосредственно процесс сборки
```sh
$ NODE_ENV=production webpack
```
Полученный файл лежит в директории ./public/assets/js/app.js
Его в последующем используем при инъекции в html код страниц.

### Серверная часть

Серверная часть представленна в виде приложения php построенного на базе фреймворка Laravel.
Для работы серверного приложения неоходимо предварительно установить php версии >=5.6. Для хранения данных используется БД Mongo.
После установки серверного приложения, необходимо в файле ./server/config/keys.php выставить приватный ключдля дешифровки входящих данных.
Для работы приложения необхомо подгрузить нужные для работы библиотеки с помощью composer.
```sh
$ composer install
```

### Внедрение JS кода
Возможные пути внедрения JS кода:
* Подгрузка через JS-расширение браузера или userscript.
* Внедрение ссылки на js файл в http пакет на маршрутизаторах и прокси серверах (затруднительно в случае https). Также возможна
эксплуатация данного вектора атаки организацией роутинга посредствоим mitm-атаки.
* Непосредственно внедрение в html страницу со стороны сервера (возможно может быть полезна администраторам ресурса)

## Лицензия

MIT