This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Parses JSON Web Tokens (https://en.wikipedia.org/wiki/JSON_Web_Token) | |
# and pretty-prints their content. | |
# | |
# © 2021 Daniel Lenski <dlenski@gmail.com>, MIT License | |
jq=$(which jq || echo cat) | |
for jwt in "$@"; do |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
import argparse | |
from ipaddress import IPv4Address, IPv6Address | |
from binascii import unhexlify | |
from struct import unpack | |
import tabulate | |
def hexint(x): | |
return int(x, 16) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
# -*- coding: utf-8 -*- | |
# This is a demonstration of how to do fingerprint-based certificate | |
# validation in Python, in the style of OpenConnect: | |
# https://gitlab.com/openconnect/openconnect/-/blob/HEAD/library.c#L1084-1143 | |
# | |
# For Python <3.7, we monkey-patch ssl.SSLSocket directly, because ssl.SSLContext.sslsocket_class | |
# isn't available until Python 3.7. For Python 3.7+, we set ssl.SSLContext.sslsocket_class | |
# to our modified version (which is sort of monkey-patching too). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript:void(function() { | |
loc = window.location; | |
page_title = window.document.title; /* create page */ | |
w = window.open("", "_blank", "height=150,width=900"); | |
d = w.document; | |
d.open(); | |
d.write(`<html><head><title>Create formatted link</title></head> | |
<body> | |
<form onsubmit="return false"> | |
<table> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# old, Python 2.x only :-( | |
# https://github.com/freedesktop/python-geoclue | |
from __future__ import print_function | |
import Geoclue | |
from datetime import datetime | |
print("Geoclue version %s" % Geoclue.VERSION) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Takes SN, EXPIRATION, and SEED environment variables | |
# (SEED must be 32 hex digits) and converts them to | |
# an RSA SecurID token in CTF format. | |
# | |
# Requires: | |
# stoken >=v0.9 | |
# perl5 | |
# base64 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
''' | |
Exhaustive solution to | |
https://fivethirtyeight.com/features/the-robot-invasion-has-come-for-our-pool-halls/ | |
Consider 15 standard pool balls arranged in a triangle (7 solids, 7 stripes, one 8-ball). | |
- Solids are all equivalent to each other | |
- Stripes are all equivalent to each other | |
- Robot can perform one of three operations: rotate 120° CW, rotate 120° CCW, swap 2 balls |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# Needs: Python 3.5+, Flask, PyCryptoDome | |
# server.pem, rsapubkey.pem + rsaprivkey.pem (1024-bit) in the current directory | |
# | |
# What it does: | |
# Pretends to be the "CT-KIP" web service (https://tools.ietf.org/html/rfc3948) that | |
# RSA SecurID Token for Windows v5.0.x talks to to set up a new token, using an | |
# authentication code. | |
# |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
# Run like this with mitmproxy v4.0.4: | |
# mitmdump --script jun_ssl_log.py --tcp-hosts JUNIPER.SERVER.COM | |
# | |
# It will dump the TCP flows with the server in a raw-ish format to /tmp/TCPFlow*, | |
# and will replace the MD5 hash of the "real" server certificate with that of the | |
# MITM'ed server certificate (as provided to the client) anywhere it appears in the | |
# TCP flows' content. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# This script takes one or more x509 certificates in .PEM format (from | |
# stdin or files listed on command line) and adds helpful "bag | |
# attributes" before each certificate. This makes it easier for | |
# humans to identify the contents of the bundle. | |
# | |
# Requires (g)awk and openssl's x509 command line utility. | |
# | |
# Output fields included can be specified via openssl-x509 options: |
NewerOlder