Aquí dejo el script por si puede ayudar a alguien que este empezando en Python:
Código:
import socket
import sys
import random
#Python 2.7
#By Chewarrior script phpBB3 version alfa
Browser = ["Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0"
, "Mozilla/5.0 (X11; Linux i686; rv:29.0) Gecko/20100101 Firefox/29.0",
"User-Agent: Googlebot/2.1", ]
Defectcss = ["styles/subsilver2/style.cfg",
"styles/prosilver/style.cfg"]
def check():
if len(sys.argv) < 4:
print ("Parametros insuficientes")
print ("URL PATH PORT")
print ("Ejemplo: ./checkphpbb www.phpBB.es / 80 ")
print ("Ejemplo: ./checkphpbb www.phpBB.es /Foro/ 80")
print ("Ejemplo: ./checkphpbb foro.phpBB.es /Micarpeta/ 80")
else:
return 1
def VersionCms(datos,cont):
tam=len(datos)
Buffer="\t"
pos = datos.find("version",0,tam)
if pos == -1:
print ("\tError al leer style.conf")
else:
Buffer = Buffer+"Read "+Defectcss[cont]+" "
Buffer = Buffer+"PhpBB "+datos[pos:tam]
print (Buffer+" ")
def InfoServer(datosServer):
aux = "0"
BufferServer = ""
posServer = datosServer.find("Server:", 0)
if posServer == -1:
print ("\tError al leer datos del Servidor")
else:
while (ord(aux)!=10):
aux = datosServer[posServer]
BufferServer = BufferServer+aux
posServer = posServer +1
print ("\n\t .....................Version phpBB.....................\n")
print ("\t"+BufferServer)
def conectar(URL,PORT,peticion):
data = ""
#print peticion
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((URL, int(PORT)))
s.send(peticion)
data = s.recv(2024)
#print data
s.close()
return data
if check() == 1:
cont = 0
chekingServer = 0
URL = sys.argv[1]
Puerto = sys.argv[3]
PATH = sys.argv[2]
while (cont < 2):
peticion = "GET "+PATH+Defectcss[cont]+" /HTTP/1.1\r\nHOST:"+URL+"\r\n"\
+Browser[random.randrange(3)]+"\r\n\r\n"
data = conectar(URL, Puerto, peticion)
if chekingServer == 0:
InfoServer(data)
VersionCms(data,cont)
cont = cont + 1
chekingServer = 1
else:
exit
Para Python 3.x:
Dado los cambios en el tratamiento de los tipos de datos y las codificaciones de caracteres de python 3.x si queréis hacer funcionar el script en esta versiones tenéis que codificar en unicode las variables que se envían por el socket y luego decodificar las que se reciben.
Marcadores