Skip to content

Instantly share code, notes, and snippets.

@Kirill89
Kirill89 / client.js
Created August 13, 2018 06:55 — forked from steinwaywhw/client.js
A minimal term.js server/client demo. To be used with node.js
var client = {};
client.run = function (options) {
options = options || {};
var socket = io.connect(options.remote || "http://localhost:8080");
socket.on('connect', function() {
var term = new Terminal({
@Kirill89
Kirill89 / e.js
Last active March 24, 2020 22:33
Custom error in JS
class GoodError extends Error {
constructor(...args) {
super(...args);
this.name = 'GoodError';
Error.captureStackTrace(this, GoodError);
}
}
@Kirill89
Kirill89 / jsts.sh
Last active January 3, 2019 20:50
Convert JavaScript to TypeScript
#!/usr/bin/env bash
if ! [[ -x "$(command -v lebab)" ]]; then
echo 'Error: lebab is not installed.' >&2
echo 'Please run: npm install -g lebab tslint' >&2
exit 1
fi
if ! [[ -x "$(command -v tslint)" ]]; then
echo 'Error: tslint is not installed.' >&2
@Kirill89
Kirill89 / .sh
Last active March 19, 2019 11:41
edit64 - base64 editor. Usage: copy base64 encoded text -> run edit64 in your terminal -> paste updated base64 string
# put it into your ~/.zshrc
edit64()
{
DECODED=$(pbpaste | base64 --decode)
TMP=$(mktemp)
echo "Temporary file: $TMP"
echo "$DECODED" > "$TMP"
vi "$TMP"
UPDATED=$(cat ${TMP})
@Kirill89
Kirill89 / readFileSync_vs_readFile.js
Last active March 23, 2019 00:10
readFileSync vs readFile benchmark
const fs = require('fs');
const util = require('util');
const readFile = util.promisify(fs.readFile);
fs.writeFileSync('a', 'a');
const attempts = 100000;
function runInCallback(left, cb) {
@Kirill89
Kirill89 / prototype-pollution-merge-check.js
Last active June 27, 2023 15:32
prototype pollution check
// https://github.com/Kirill89/prototype-pollution-explained
const mergeFn = require('lodash').defaultsDeep;
const payloads = [
'{"constructor": {"prototype": {"a0": true}}}',
'{"__proto__": {"a1": true}}',
];
function check() {
for (const p of payloads) {
mergeFn({}, JSON.parse(p), {});
@Kirill89
Kirill89 / Dockerfile
Last active March 6, 2023 10:27
Prototype Pollution security vulnerability in minimist
FROM ubuntu:18.04
COPY ./app /app
RUN chmod u+s /app
RUN useradd -s /bin/bash just-user
USER just-user
@Kirill89
Kirill89 / Dockerfile
Created March 12, 2020 08:36
Prototype Pollution security vulnerability in yargs
FROM ubuntu:18.04
COPY ./app /app
RUN chmod u+s /app
RUN useradd -s /bin/bash just-user
USER just-user
# Using libtool, lipo, ar and otool
lipo -info input.a
lipo -extract_family arm64 -output output.a input.a
# output.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
# lipo output.a -thin arm64 -output output_arm64.a
ar -x output_arm64.a
@Kirill89
Kirill89 / SlayTheSpire-json-to-save.js
Created August 19, 2020 17:07
Slay The Spire save edit
const fs = require('fs');
let data = fs.readFileSync('IRONCLAD.autosave.json', 'utf8');
const out = [];
for (let i = 0; i < data.length; i++) {
const key = 'key';
out.push(data.charCodeAt(i) ^ key.charCodeAt(i % key.length));
}