Skip to content

Instantly share code, notes, and snippets.

@Ge0rg3
Ge0rg3 / flumberbuckets.py
Last active June 12, 2020 18:37
Flumberbuckets, but optimized for use as a subtask. For example, outputs are flushed immediately, paths are relative and terminal sizes aren't checked.
#!/usr/bin/env python3
import threading, argparse, subprocess, botocore.session, os, sys
from queue import Queue
parser = argparse.ArgumentParser('./flumberbuckets.py [options] -i [bucket]')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-w', '--wordlist', dest='wordlist', help='location of wordlist from which permutations of keyword will be generated')
group.add_argument("-s", "--single", dest="single", help="check a single bucket only", action='store_const', const=True, default=False)
@Ge0rg3
Ge0rg3 / sandcastle.py
Last active June 12, 2020 18:37
Same algorithm as Sandcastle (https://github.com/0xSearches/sandcastle), but less clunky (and with annoying status messages). Also keeps flushing messages.
#!/usr/bin/env python3
import requests as rq
import sys
if len(sys.argv) < 3:
print("Usage: python sandcastle.py companyname wordlist.txt", flush=True)
exit()
company = sys.argv[1]
wordlist_dir = sys.argv[2]
@Ge0rg3
Ge0rg3 / lazys3.rb
Last active May 9, 2020 05:23
lazys3, but edited. this version has a custom wordlist dir, regular stdout flushing and a nice ending message :)
#!/usr/bin/env ruby
require 'net/http'
require 'timeout'
$stdout.sync = true
class S3
attr_reader :bucket, :domain, :code
def initialize(bucket)
@Ge0rg3
Ge0rg3 / snake.html
Created February 16, 2020 19:45
websocket testing
<head>
<title>Snake</title>
</head>
<div id="container">
<canvas id="board" width="500" height="500"></canvas>
@Ge0rg3
Ge0rg3 / sysctl.conf
Last active November 12, 2019 12:10
ideal sysctl.conf
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.suid_dumpable = 0
kernel.core_uses_pid = 1
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.panic = 60
kernel.panic_on_oops = 60
kernel.perf_event_paranoid = 2
kernel.randomize_va_space = 2
@Ge0rg3
Ge0rg3 / entryExam.py
Created April 15, 2019 13:18
Solution to Sunshine CTF 2019's Entry Exam challenge.
from PIL import Image, ImageDraw
from io import BytesIO
from math import floor
import requests as rq
import time
filepath = "/home/george/"
questionUrl = "http://archive.sunshinectf.org:19005/exam"
x1 = 337
@Ge0rg3
Ge0rg3 / generate.php
Created April 15, 2019 07:02
Sunshine CTF 2019's generate.php file, from the Wrestler Name Generator challenge.
<?php
$whitelist = array(
'127.0.0.1',
'::1'
);
// if this page is accessed from the web server, the flag is returned
// flag is in env variable to avoid people using XXE to read the flag
// REMOTE_ADDR field is able to be spoofed (unless you already are on the server)
if(in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
@Ge0rg3
Ge0rg3 / 16-bit-aes-bruteforce.py
Created April 10, 2019 22:27
16 bit AES bruteforce challenge for Sunshine CTF '19 https://2019.sunshinectf.org/challenges#16-bit-AES
from Crypto.Cipher import AES
from itertools import product
import binascii
for val in product(range(256), repeat=2):
key = bytes(val)*8
cipher = AES.new(key, AES.MODE_ECB)
msg = cipher.encrypt("hellothisisatest")
z = binascii.hexlify(msg).decode('utf-8')
if z == "d9bf38ed407349d227b859eac20d5394":
@Ge0rg3
Ge0rg3 / timeWarp.py
Created April 10, 2019 22:15
Solving Sunshine CTF 2019's Time Warp challenge.
from socket import socket
nums = []
def recv(sock):
try: data = sock.recv(1024).decode()
except: data = ""
print(data)
return data
@Ge0rg3
Ge0rg3 / leaderboardCodeBruteforce.py
Created April 9, 2019 09:18
A tool for bruteforcing the SHA256 hash leaderboard code, as part of HMGCC's BLK_BOX challenge
from hashlib import sha256
from itertools import product
hash = "B4BFAF4A11C4C962C46ECC384D799B26FF26AC60684FE1C5396364DFA20103D0".lower()
combos = ['k8', 'SK', 'jL', 'CN', '76', 'L5', 'OR', 'AW', 'x1', '7I', 'L5', '43']
checkFlag = lambda flag: hash == sha256(''.join(flag).encode()).hexdigest()
sequences = product(*combos)