Browse Source

Merge branch 'master' of https://github.com/gchq/CyberChef into bugfix/json-to-csv

mshwed 6 năm trước cách đây
mục cha
commit
313d1a580e

+ 1 - 1
.travis.yml

@@ -1,6 +1,6 @@
 language: node_js
 language: node_js
 node_js:
 node_js:
-  - node
+  - lts/*
 addons:
 addons:
   chrome: stable
   chrome: stable
 install: npm install
 install: npm install

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 579 - 163
package-lock.json


+ 16 - 16
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "cyberchef",
   "name": "cyberchef",
-  "version": "8.31.1",
+  "version": "8.31.6",
   "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
   "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
   "author": "n1474335 <n1474335@gmail.com>",
   "author": "n1474335 <n1474335@gmail.com>",
   "homepage": "https://gchq.github.io/CyberChef",
   "homepage": "https://gchq.github.io/CyberChef",
@@ -30,14 +30,14 @@
   "main": "build/node/CyberChef.js",
   "main": "build/node/CyberChef.js",
   "bugs": "https://github.com/gchq/CyberChef/issues",
   "bugs": "https://github.com/gchq/CyberChef/issues",
   "devDependencies": {
   "devDependencies": {
-    "@babel/core": "^7.4.3",
-    "@babel/plugin-transform-runtime": "^7.4.3",
-    "@babel/preset-env": "^7.4.3",
+    "@babel/core": "^7.4.4",
+    "@babel/plugin-transform-runtime": "^7.4.4",
+    "@babel/preset-env": "^7.4.4",
     "autoprefixer": "^9.5.1",
     "autoprefixer": "^9.5.1",
     "babel-eslint": "^10.0.1",
     "babel-eslint": "^10.0.1",
     "babel-loader": "^8.0.5",
     "babel-loader": "^8.0.5",
     "babel-plugin-syntax-dynamic-import": "^6.18.0",
     "babel-plugin-syntax-dynamic-import": "^6.18.0",
-    "chromedriver": "^2.46.0",
+    "chromedriver": "^74.0.0",
     "colors": "^1.3.3",
     "colors": "^1.3.3",
     "css-loader": "^2.1.1",
     "css-loader": "^2.1.1",
     "eslint": "^5.16.0",
     "eslint": "^5.16.0",
@@ -53,7 +53,7 @@
     "grunt-contrib-watch": "^1.1.0",
     "grunt-contrib-watch": "^1.1.0",
     "grunt-eslint": "^21.0.0",
     "grunt-eslint": "^21.0.0",
     "grunt-exec": "~3.0.0",
     "grunt-exec": "~3.0.0",
-    "grunt-jsdoc": "^2.3.1",
+    "grunt-jsdoc": "^2.4.0",
     "grunt-webpack": "^3.1.3",
     "grunt-webpack": "^3.1.3",
     "grunt-zip": "^0.18.2",
     "grunt-zip": "^0.18.2",
     "html-webpack-plugin": "^3.2.0",
     "html-webpack-plugin": "^3.2.0",
@@ -62,25 +62,25 @@
     "jsdoc-babel": "^0.5.0",
     "jsdoc-babel": "^0.5.0",
     "mini-css-extract-plugin": "^0.6.0",
     "mini-css-extract-plugin": "^0.6.0",
     "nightwatch": "^1.0.19",
     "nightwatch": "^1.0.19",
-    "node-sass": "^4.11.0",
+    "node-sass": "^4.12.0",
     "postcss-css-variables": "^0.12.0",
     "postcss-css-variables": "^0.12.0",
     "postcss-import": "^12.0.1",
     "postcss-import": "^12.0.1",
     "postcss-loader": "^3.0.0",
     "postcss-loader": "^3.0.0",
     "prompt": "^1.0.0",
     "prompt": "^1.0.0",
     "sass-loader": "^7.1.0",
     "sass-loader": "^7.1.0",
-    "sitemap": "^2.1.0",
+    "sitemap": "^2.2.0",
     "style-loader": "^0.23.1",
     "style-loader": "^0.23.1",
     "svg-url-loader": "^2.3.2",
     "svg-url-loader": "^2.3.2",
     "url-loader": "^1.1.2",
     "url-loader": "^1.1.2",
-    "webpack": "^4.29.6",
+    "webpack": "^4.31.0",
     "webpack-bundle-analyzer": "^3.3.2",
     "webpack-bundle-analyzer": "^3.3.2",
     "webpack-dev-server": "^3.3.1",
     "webpack-dev-server": "^3.3.1",
     "webpack-node-externals": "^1.7.2",
     "webpack-node-externals": "^1.7.2",
     "worker-loader": "^2.0.0"
     "worker-loader": "^2.0.0"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@babel/polyfill": "^7.4.3",
-    "@babel/runtime": "^7.4.3",
+    "@babel/polyfill": "^7.4.4",
+    "@babel/runtime": "^7.4.4",
     "arrive": "^2.4.1",
     "arrive": "^2.4.1",
     "babel-plugin-transform-builtin-extend": "1.1.2",
     "babel-plugin-transform-builtin-extend": "1.1.2",
     "bcryptjs": "^2.4.3",
     "bcryptjs": "^2.4.3",
@@ -96,7 +96,7 @@
     "crypto-api": "^0.8.3",
     "crypto-api": "^0.8.3",
     "crypto-js": "^3.1.9-1",
     "crypto-js": "^3.1.9-1",
     "ctph.js": "0.0.5",
     "ctph.js": "0.0.5",
-    "d3": "^4.9.1",
+    "d3": "^5.9.2",
     "d3-hexbin": "^0.2.2",
     "d3-hexbin": "^0.2.2",
     "diff": "^4.0.1",
     "diff": "^4.0.1",
     "es6-promisify": "^6.0.1",
     "es6-promisify": "^6.0.1",
@@ -107,8 +107,8 @@
     "file-saver": "^2.0.1",
     "file-saver": "^2.0.1",
     "geodesy": "^1.1.3",
     "geodesy": "^1.1.3",
     "highlight.js": "^9.15.6",
     "highlight.js": "^9.15.6",
-    "jimp": "^0.6.1",
-    "jquery": "3.3.1",
+    "jimp": "^0.6.4",
+    "jquery": "3.4.1",
     "js-crc": "^0.2.0",
     "js-crc": "^0.2.0",
     "js-sha3": "^0.8.0",
     "js-sha3": "^0.8.0",
     "jsesc": "^2.5.2",
     "jsesc": "^2.5.2",
@@ -122,7 +122,7 @@
     "loglevel": "^1.6.1",
     "loglevel": "^1.6.1",
     "loglevel-message-prefix": "^3.0.0",
     "loglevel-message-prefix": "^3.0.0",
     "moment": "^2.24.0",
     "moment": "^2.24.0",
-    "moment-timezone": "^0.5.23",
+    "moment-timezone": "^0.5.25",
     "ngeohash": "^0.6.3",
     "ngeohash": "^0.6.3",
     "node-forge": "^0.8.2",
     "node-forge": "^0.8.2",
     "node-md6": "^0.1.0",
     "node-md6": "^0.1.0",
@@ -134,7 +134,7 @@
     "qr-image": "^3.2.0",
     "qr-image": "^3.2.0",
     "scryptsy": "^2.0.0",
     "scryptsy": "^2.0.0",
     "snackbarjs": "^1.1.0",
     "snackbarjs": "^1.1.0",
-    "sortablejs": "^1.8.4",
+    "sortablejs": "^1.9.0",
     "split.js": "^1.5.10",
     "split.js": "^1.5.10",
     "ssdeep.js": "0.0.2",
     "ssdeep.js": "0.0.2",
     "ua-parser-js": "^0.7.19",
     "ua-parser-js": "^0.7.19",

+ 1 - 1
src/core/Utils.mjs

@@ -836,7 +836,7 @@ class Utils {
             args = m[2]
             args = m[2]
                 .replace(/"/g, '\\"') // Escape double quotes
                 .replace(/"/g, '\\"') // Escape double quotes
                 .replace(/(^|,|{|:)'/g, '$1"') // Replace opening ' with "
                 .replace(/(^|,|{|:)'/g, '$1"') // Replace opening ' with "
-                .replace(/([^\\]|[^\\]\\\\)'(,|:|}|$)/g, '$1"$2') // Replace closing ' with "
+                .replace(/([^\\]|(?:\\\\)+)'(,|:|}|$)/g, '$1"$2') // Replace closing ' with "
                 .replace(/\\'/g, "'"); // Unescape single quotes
                 .replace(/\\'/g, "'"); // Unescape single quotes
             args = "[" + args + "]";
             args = "[" + args + "]";
 
 

+ 2 - 2
src/core/operations/AESEncrypt.mjs

@@ -65,8 +65,8 @@ class AESEncrypt extends Operation {
      * @throws {OperationError} if invalid key length
      * @throws {OperationError} if invalid key length
      */
      */
     run(input, args) {
     run(input, args) {
-        const key = Utils.convertToByteArray(args[0].string, args[0].option),
-            iv = Utils.convertToByteArray(args[1].string, args[1].option),
+        const key = Utils.convertToByteString(args[0].string, args[0].option),
+            iv = Utils.convertToByteString(args[1].string, args[1].option),
             mode = args[2],
             mode = args[2],
             inputType = args[3],
             inputType = args[3],
             outputType = args[4];
             outputType = args[4];

+ 1 - 1
src/web/App.mjs

@@ -108,7 +108,7 @@ class App {
     handleError(err, logToConsole) {
     handleError(err, logToConsole) {
         if (logToConsole) log.error(err);
         if (logToConsole) log.error(err);
         const msg = err.displayStr || err.toString();
         const msg = err.displayStr || err.toString();
-        this.alert(msg, this.options.errorTimeout, !this.options.showErrors);
+        this.alert(Utils.escapeHtml(msg), this.options.errorTimeout, !this.options.showErrors);
     }
     }
 
 
 
 

+ 3 - 1
src/web/HTMLIngredient.mjs

@@ -293,7 +293,9 @@ class HTMLIngredient {
         const op = el.parentNode.parentNode;
         const op = el.parentNode.parentNode;
         const target = op.querySelectorAll(".arg")[this.target];
         const target = op.querySelectorAll(".arg")[this.target];
 
 
-        target.value = el.childNodes[el.selectedIndex].getAttribute("populate-value");
+        const popVal = el.childNodes[el.selectedIndex].getAttribute("populate-value");
+        if (popVal !== "") target.value = popVal;
+
         const evt = new Event("change");
         const evt = new Event("change");
         target.dispatchEvent(evt);
         target.dispatchEvent(evt);
 
 

+ 6 - 6
tests/operations/tests/Crypt.mjs

@@ -209,9 +209,9 @@ Tag: 16a3e732a605cc9ca29108f742ca0743`,
     {
     {
         name: "AES Encrypt: AES-128-GCM, Binary",
         name: "AES Encrypt: AES-128-GCM, Binary",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
-        expectedOutput: `fa17fcbf5e8763322c1b0c8562e1512ed9d702ef70c1643572b9de3e34ae6b535e6c1b992432aa6d06fb6f80c861262aef66e7c26035afe77bd3861261e4e092b523f058f8ebef2143db21bc16d02f7a011efb07419300cb41c3b884d1d8d6a766b8963c
+        expectedOutput: `5a29debb5c5f38cdf8aee421bd94dbbf3399947faddf205f88b3ad8ecb0c51214ec0e28bf78942dfa212d7eb15259bbdcac677b4c05f473eeb9331d74f31d441d97d56eb5c73b586342d72128ca528813543dc0fc7eddb7477172cc9194c18b2e1383e4e
 
 
-Tag: fa6bbb34c8cde65a3d7b93fb094fc84f`,
+Tag: 70fad2ca19412c20f40fd06918736e56`,
         recipeConfig: [
         recipeConfig: [
             {
             {
                 "op": "AES Encrypt",
                 "op": "AES Encrypt",
@@ -301,9 +301,9 @@ Tag: fa6bbb34c8cde65a3d7b93fb094fc84f`,
     {
     {
         name: "AES Encrypt: AES-192-GCM, Binary",
         name: "AES Encrypt: AES-192-GCM, Binary",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
-        expectedOutput: `ed22946f96964d300b45f5ce2d9601ba87682da1a603c90e6d4f7738729b0602f613ee392c9bfc7792594474f1213fb99185851f02ece4df0e93995e49f97aa4d0a337d7a80d83e4219dae5a3d36658f8659cdd5ed7c32707f98656fab7fb43f7a61e37c
+        expectedOutput: `318b479d919d506f0cd904f2676fab263a7921b6d7e0514f36e03ae2333b77fa66ef5600babcb2ee9718aeb71fc357412343c1f2cb351d8715bb0aedae4a6468124f9c4aaf6a721b306beddbe63a978bec8baeeba4b663be33ee5bc982746bd4aed1c38b
 
 
-Tag: be17cb31edb77f648b9d1032b235b33d`,
+Tag: 86db597d5302595223cadbd990f1309b`,
         recipeConfig: [
         recipeConfig: [
             {
             {
                 "op": "AES Encrypt",
                 "op": "AES Encrypt",
@@ -393,9 +393,9 @@ Tag: be17cb31edb77f648b9d1032b235b33d`,
     {
     {
         name: "AES Encrypt: AES-256-GCM, Binary",
         name: "AES Encrypt: AES-256-GCM, Binary",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
         input: "7a0e643132750e96d805d11e9e48e281fa39a41039286423cc1c045e5442b40bf1c3f2822bded3f9c8ef11cb25da64dda9c7ab87c246bd305385150c98f31465c2a6180fe81d31ea289b916504d5a12e1de26cb10adba84a0cb0c86f94bc14bc554f3018",
-        expectedOutput: `e3f1b236eaf3b9df69df8133a1b417fa42b242d8ad49e4d2f3469aca7e2a41737e4f2c8a0d212143287088fad51743577dc6dfa8ed328ca90113cbeb9b137926b2168cc037bdc371777e6ee02b9d9c017b6054fd83d43b4885fbe9c044a8574f1491a893
+        expectedOutput: `1287f188ad4d7ab0d9ff69b3c29cb11f861389532d8cb9337181da2e8cfc74a84927e8c0dd7a28a32fd485afe694259a63c199b199b95edd87c7aa95329feac340f2b78b72956a85f367044d821766b1b7135815571df44900695f1518cf3ae38ecb650f
 
 
-Tag: 23ddbd3ee4de33f98a9ea9a170bdf268`,
+Tag: 821b1e5f32dad052e502775a523d957a`,
         recipeConfig: [
         recipeConfig: [
             {
             {
                 "op": "AES Encrypt",
                 "op": "AES Encrypt",

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác