Skip to content

Instantly share code, notes, and snippets.

View wrossmann's full-sized avatar
👺
¯\_(ツ)_/¯

Wade Rossmann wrossmann

👺
¯\_(ツ)_/¯
  • Victoria, BC
View GitHub Profile
@wrossmann
wrossmann / bork.rb
Created March 7, 2016 21:23
Ruby::Mysql2::bork
require 'mysql2'
my = Mysql2::Client.new(:host => 'localhost', :username => 'root', :database=>'test')
stmt = my.prepare('INSERT INTO user (salt, password) VALUES(?,?);')
salt = "1a7v95zj1xa1l26g80meeaplc7294dp"
hashed = "4542511a19a5b18fd6801653ddc97b6e6ef3e855f4736720d791c4f4eed78957c0b5906921725a3ad0d8e98cf6722243f64e552382a37eb839f204d4fe6770ae"
stmt.execute(salt, hash)
# woops, that should be 'hashed', not 'hash'.
// a complex iterator
function gen() {
$pagesize = 50;
while( $items = $someapi->paginated_operation($pagesize) ) {
foreach( $items as $item ) {
yield $item;
}
}
}
Script:
ARGS_COMMAND='find logs -type f ! -size 0 -exec grep -l "Broken pipe" {} \;'
parallel -j $MAXJOBS -i bash -c $EXEC_COMMAND -- $($ARGS_COMMAND)
Bash -x output:
++ find logs -type f '!' -size 0 -exec grep -l '"Broken' 'pipe"' '{}' '\;'
find: missing argument to `-exec'
@wrossmann
wrossmann / StupidDecode.php
Created May 1, 2015 21:09
Reverse the lame home-rolled 'encryption' someone posted
<?php
// supplied encoding function
function stupidEncode($input, $key) {
$k = $key;
$r = $input;
$l = strlen($r);
$e = "";
for($i=0; $i < $l; $i++){

Directory structure:

src/
	Foo.php
	Foo/
		Exception.php
		Excecption/
			Unauthorized.php
			NotFound.php

Method.php

<?
foreach($filters as $pos => $filter) {
if( ! $filter instanceof Filter\FilterInterface ) {
throw new \InvalidArgumentException(
sprintf('Argument 3 passed to %s::%s must be an array of instances of %s, %s given for index %d',
__CLASS__, __FUNCTION__, 'Filter\FilterInterface', get_class($filter), $pos)
);
}
}
@wrossmann
wrossmann / StrTok.php
Created April 1, 2015 22:34
String tokenizer class allows mulitple simultaneous token chars, and multiple simultaneous tokenizers.
<?php
class StrTok {
const INCL_PREV = 1; // include previous token at beginning of string
const INCL_CUR = 2; // include current token at end of string
const SKIP_EMPTY = 4; // skip empty strings
private $string, $tokens, $flags, $curpos;
public function __construct($string, $tokens, $flags=0) {
$this->string = $string;
@wrossmann
wrossmann / int_to_perms.php
Last active August 29, 2015 14:17
Translate an integer representing unix permissions into human-readable format.
<?php
function int_to_perm($int) {
return sprintf(
'%s%s%s',
$int & 4 ? 'r' : '-', // read
$int & 2 ? 'w' : '-', // write
$int & 1 ? 'x' : '-' // execute
);
}
chef > ::File.exists?(node['c_elk']['logstash']['extra_conf_dir']+'/server.crt')
=> true
chef > ssl_defaults = node['c_elk']['logstash']['ssl_subj_defaults']
=> {"C"=>"CA", "ST"=>"BC", "L"=>"City", "O"=>"Company", "OU"=>"IT", "emailAddress"=>"servers@company.com"}
chef > ssl_subject = sprintf('/C=%s/ST=%s/L=%s/O=%s/OU=%s/CN=%s/emailAddress=%s',
chef > ssl_defaults['C'], ssl_defaults['ST'], ssl_defaults['L'],
chef > ssl_defaults['O'], ssl_defaults['OU'], node['fqdn'], ssl_defaults['emailAddress']
chef ?> )
=> "/C=CA/ST=BC/L=City/O=Company/OU=IT/CN=chef-ls-test-01.iad.company.com/emailAddress=servers@company.com"
chef > ssl_subject == `openssl x509 -in #{node['c_elk']['logstash']['extra_conf_dir']}/server.crt -noout -subject | cut -d " " -f 2-`.strip
{
"network": {
"servers": [ "loki-test-01.iad.company.com:6782" ],
"ssl ca": "/etc/logstash-forwarder/ca.crt",
"timeout": 15
},
"files": [
{
"paths": [ "/usr/local/psa/var/log/maillog" ],
"fields": { "type": "postfix" }