files given:
- delphi-07a5c9d07a4c20ae81a2ddc66b9602d0dcceb74b
- libtwenty.so-4a3918b2efd9fbdfd20eeb8fa51ca76bc42eb2f2
TL;DR
- Reverse Command Protocol
- Integer Overflow
- Metacharacter Injection
print["https://github.com%s"%x[9:-1]for x in __import__('re').findall('<a href="/[a-zA-Z0-9_]+/[a-zA-Z0-9_]+">',__import__('urllib2').urlopen("https://github.com/trending").read())if "/site/" not in x] |
syntax enable | |
set background=dark | |
colorscheme molokai | |
filetype plugin indent on | |
let &t_SI .= "\<Esc>[?2004h" | |
let &t_EI .= "\<Esc>[?2004l" | |
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin() |
int overflow() | |
{ | |
char buf[136]; | |
return read(0, &buf, 256u); | |
} | |
int main() | |
{ | |
overflow(); | |
return write(1, "WIN\n", 4u); |
// | |
// challenge_6.c | |
// Matasano Crypto Challenge | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <unistd.h> | |
char* HEX_LOOKUP = "0123456789abcdef"; |
(lambda s=__import__("socket").socket():s.bind(('',9237))==s.listen(5)==map(lambda c,d:c.send(c.recv(99)),(s.accept()[0]for _ in iter(int,1))))() |
Given that this challenge was 600 points, I expected to be challenged with this one. But with 91 solves I think the people at SDSLabs kinda messed up on the points for this one lol.
Checking out what type of file we were dealing with here:
[~/Documents/CTFs/backdoor]$ file team
void randop() { | |
munmap((void*)0x0F000000, MAPLEN); | |
void *buf = mmap((void*)0x0F000000, MAPLEN, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE|MAP_FIXED, 0, 0); | |
unsigned seed; | |
if(read(0, &seed, 4) != 4) return; | |
srand(seed); | |
for(int i = 0; i < MAPLEN - 4; i+=3) { | |
*(int *)&((char*)buf)[i] = rand(); | |
if(i%66 == 0) ((char*)buf)[i] = 0xc3; | |
} |
tab_depth = 0 | |
def log(s=None, **kwargs): | |
global tab_depth | |
msg = s if s is not None else ", ".join(["{} == {}".format(k, v) for k, v in kwargs.items()]) | |
print("\t" * tab_depth + msg) | |
def perms(n, l): | |
global tab_depth |