[Python]Proyecto software libre PyHttp Explorer

Iniciado por braulio--, 17 Mayo 2009, 16:31 PM

0 Miembros y 1 Visitante están viendo este tema.

braulio--

Hola, a todo el mundo que le guste python le invito a participar en mi proyecto de software libre que se trata de un script que examina las cabeceras http de un sitio web y genera un informe y si puede explotar de alguna forma explotará (por ejemplo , subir una shell con el metodo put). Contará con GUI desarrollada con Tkinter esto es lo que llevo de code :
Código (python) [Seleccionar]

import socket,string
from Tkinter import *




class miventana :
  def buscarcadena(self,cadena,cabeceraabuscar):
   longitudc = len(cadena)
   otronumero=0
   lista = []
   longutdcab=len("\n")
   numero=0
   while  numero <=  longitudc-longutdcab:
      if cadena[numero:numero+longutdcab]=="\n":
           lista.append(numero)
           otronumero+=1
      else:
           pass
      numero+=1
   numero = 0
   for numero in range(len(lista)-1):
       if cadena[lista[numero]:lista[numero+1]].find(cabeceraabuscar)!=-1:
         return cadena[lista[numero]:lista[numero+1]]
   return -1
  def __init__ (self):
    #Se declara la ventana
    self.ventana = Tk()
    self.ventana.minsize(400,100)
    self.ventana.title("PyHttp Explorer")
#Variable del textbox
    self.host = StringVar()
#Se declaran los controles
    self.label = Label(self.ventana,text = "Host : ")
    self.textbox = Entry(self.ventana,textvariable=self.host)
    self.boton = Button(self.ventana,text="Conectar",command = self.conectar)
#Aqui se va poniendo los controles en las ventanas
    self.label.grid(row=0,column=0)
    self.textbox.grid(row=0,column=15)
    self.boton.grid(row=1,column=15)
  def conectar(self):
    socket1 = socket.socket()
    socket1.connect((self.host.get(),80))
    socket1.send("OPTIONS / HTTP/1.0\r\n\r\nHost :"+self.host.get()+"\r\n\r\n")
    self.textorecibido=socket1.recv(4096)
    self.allow=self.buscarcadena(self.textorecibido,"Allow")
    if self.allow!=-1:
      self.lalabel = Label(self.ventana,text=self.allow)
      self.lalabel.grid(row=3,column=10)
    else :
  self.lalabel = Label(self.ventana,text="No se encontro la cabecera Allow")
  self.lalabel.grid(row=3,column=10)
    self.server = self.buscarcadena(self.textorecibido,"Server")
    if self.server!=-1:
  self.serverlabel = Label(self.ventana,text = self.server)
  self.serverlabel.grid(row=4,column =10)
    else :
  self.serverlabel = Label(self.ventana,text = "No se encontro la cabecera server")
  self.serverlabel.grid(row=4,column=10)



  def principal(self):
    self.ventana.mainloop()
ventana = miventana()
ventana.principal()


Este code tiene muchos bugs que debo arreglar pero es una version "pre alpha"
Quien quiera participar que me mande un mp. :)