Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: braulio-- en 17 Mayo 2009, 16:31 pm



Título: [Python]Proyecto software libre PyHttp Explorer
Publicado por: braulio-- en 17 Mayo 2009, 16:31 pm
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
  1. import socket,string
  2. from Tkinter import *
  3.  
  4.  
  5.  
  6.  
  7. class miventana :
  8.  def buscarcadena(self,cadena,cabeceraabuscar):
  9.   longitudc = len(cadena)
  10.   otronumero=0
  11.   lista = []
  12.   longutdcab=len("\n")
  13.   numero=0
  14.   while  numero <=  longitudc-longutdcab:
  15.      if cadena[numero:numero+longutdcab]=="\n":
  16.           lista.append(numero)
  17.           otronumero+=1
  18.      else:
  19.           pass
  20.      numero+=1
  21.   numero = 0
  22.   for numero in range(len(lista)-1):
  23.       if cadena[lista[numero]:lista[numero+1]].find(cabeceraabuscar)!=-1:
  24.         return cadena[lista[numero]:lista[numero+1]]
  25.   return -1
  26.  def __init__ (self):
  27.    #Se declara la ventana
  28.    self.ventana = Tk()
  29.    self.ventana.minsize(400,100)
  30.    self.ventana.title("PyHttp Explorer")
  31. #Variable del textbox
  32.    self.host = StringVar()
  33. #Se declaran los controles
  34.    self.label = Label(self.ventana,text = "Host : ")
  35.    self.textbox = Entry(self.ventana,textvariable=self.host)
  36.    self.boton = Button(self.ventana,text="Conectar",command = self.conectar)
  37. #Aqui se va poniendo los controles en las ventanas
  38.    self.label.grid(row=0,column=0)
  39.    self.textbox.grid(row=0,column=15)
  40.    self.boton.grid(row=1,column=15)
  41.  def conectar(self):
  42.    socket1 = socket.socket()
  43.    socket1.connect((self.host.get(),80))
  44.    socket1.send("OPTIONS / HTTP/1.0\r\n\r\nHost :"+self.host.get()+"\r\n\r\n")
  45.    self.textorecibido=socket1.recv(4096)
  46.    self.allow=self.buscarcadena(self.textorecibido,"Allow")
  47.    if self.allow!=-1:
  48.      self.lalabel = Label(self.ventana,text=self.allow)
  49.      self.lalabel.grid(row=3,column=10)
  50.    else :
  51.  self.lalabel = Label(self.ventana,text="No se encontro la cabecera Allow")
  52.  self.lalabel.grid(row=3,column=10)
  53.    self.server = self.buscarcadena(self.textorecibido,"Server")
  54.    if self.server!=-1:
  55.  self.serverlabel = Label(self.ventana,text = self.server)
  56.  self.serverlabel.grid(row=4,column =10)
  57.    else :
  58.  self.serverlabel = Label(self.ventana,text = "No se encontro la cabecera server")
  59.  self.serverlabel.grid(row=4,column=10)
  60.  
  61.  
  62.  
  63.  def principal(self):
  64.    self.ventana.mainloop()
  65. ventana = miventana()
  66. ventana.principal()
  67.  
  68.  
Este code tiene muchos bugs que debo arreglar pero es una version "pre alpha"
Quien quiera participar que me mande un mp. :)
(http://img34.imageshack.us/img34/7091/picture.png)