Autor
|
Tema: Script o herramienta para envio de peticiones (Leído 5,812 veces)
|
Maxel512
Desconectado
Mensajes: 11
|
Hola gente. Actualmente he estado testeando con BurpSuite un router y he encontrado una pequeña fuga de información al enviar una petición POST a la puerta de enlace pidiéndole el archivo de configuración, a lo que el mismo accede generosamente a cederlo sin ningún tipo de restricción. Lo que busco ahora es un programa o script configurable para hacer esto un poco mas fácil, y no desplegar todo el BurpSuite, como podria ser un script en Python por ejemplo u otra herramienta ejecutable. Gracias
|
|
|
En línea
|
|
|
|
LaThortilla (Effort)
Desconectado
Mensajes: 234
¿En que vida harás lo que en esta no?
|
import httplib def http(host,src,metod): conn = httplib.HTTPConnection(host) conn.request(metod,src) res = conn.getresponse() data = res.read() print(data) #test http('foro.elhacker.net','/modulodelhacker/','POST')
Eso creo que podría servirte ....
|
|
|
En línea
|
|
|
|
Maxel512
Desconectado
Mensajes: 11
|
File "/script.py", line 3 def http(host,src,metod): ^ IndentationError: unexpected indent
Esta es lo que deberia poder mandar para repetir la request que hace el navegador al pedir el config al ONT POST /getpage.gch?pid=101&nextpage=manager_dev_config_t.gch HTTP/1.1 Host: 192.168.1.1 Proxy-Connection: keep-alive Content-Length: 137 Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Origin: http://192.168.1.1 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxTKg6mjLA8C7ia3B DNT: 1 Referer: http://192.168.1.1/getpage.gch?pid=1002&nextpage=manager_dev_config_t.gch Accept-Encoding: gzip, deflate Accept-Language: es-ES,es;q=0.8 Cookie: SID=5=YWRtaW44ODdmOTZlNWI2NjNmMDFmZTIwOTExMWNhM2ZkYTdkMg==
------WebKitFormBoundaryxTKg6mjLA8C7ia3B Content-Disposition: form-data; name="config"
------WebKitFormBoundaryxTKg6mjLA8C7ia3B--
|
|
« Última modificación: 27 Marzo 2015, 06:06 am por Maxel512 »
|
En línea
|
|
|
|
engel lex
|
"identación" son los espacios a la izquierda de cada funcion, en python son muy importantes porque indican el scope donde estás (colocaré "·" en lugar de un espacio sean visibles) print "hola mundo" def funcion(): ··print "estoy dentro de la funcion" print "estoy fuera de la funcion" ··print "soy en error de identacion inesperada ya que no hay nada dentro de que estar"
corrije los espacios ya que son importantes, asegurate que si todos son espacio no hay tabulaciones o viceversa
|
|
« Última modificación: 27 Marzo 2015, 06:12 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Solo por dar una definición más específica de "Indentación": La Indentación (o sangría) es una cantidad de espacios en blanco y/o tabulaciones que normalmente suelen estar presente a la izquierda del principio de una linea, ni es más, ni es menos. Las aplicaciones de la Indentación sirven para darle un formato o estilo propio a cualquier tipo de texto, es una técnica usada de forma universal, en papel, archivos digitales, etc; también se aplica a lenguajes programación, cuya finalidad normalmente también es la de formatear el texto, el texto del código fuente. Lo que ocurre es que Python, es un lenguaje muuuuy restrictivo en este asunto (amado y odiado por el mismo motivo), cuya estructura se basa en unas reglas que dependen de un estilo de indentación específico, o dicho de otra forma, la indentación es parte de la sintaxis de Python, cómo en otros lenguajes lo podrían ser el uso de los brackets o corchetes {} y sus reglas, por lo tanto, es obligatorio el uso de la indentación en este lenguaje y además siguiendo unas reglas específicas para dicha indentación. PD: Te vendría bien leer las convenciones de indentación en Python: http://www.python.org/dev/peps/pep-0008/#indentationTL/DR: El error de Python (y de otros lenguajes) en mi opinión es el hecho de hacer obligatorio el uso de una característica que es literalmente invisible cómo es la indentación, y eso puede llegar a resultar muy molesto e irritante, en mi opinión, usar Python solo causa una notable disminuición en el rendimiento del programador (hablando en tiempo de productividad), puesto que, por ejemplo, no es lo mismo tener que ejercer tu mente y tus ojos para estar pendiente del formato de 100 lineas de código e ir comprobando eventualmente que todas las lineas cumplan unas reglas de indentación ...ir contando esos espacios invisibles (puaj), que añadir unos sencillos brackets al principio y al final de esas 100 lineas (por ejemplo) y opcionalmente darle tu estilo de indentación propia para el formato del código, así que para mi, Python solo es algo negativo en el parogramación, aunque tenga una buena demanda en el mercado y sea multi-plataforma ...eso me resulta irrelevante, sus reglas de Indentación más que una utilidad favorable es la inutilidad más desfavorable tanto para el lenguaje cómo para el programador que use ese lenguaje, y ojo, yo soy alguien que indento cualquer código que escribo en otros lenguajes, de hecho me gusta hacerlo y soy muy meticuloso en ello ya que siempre me ha gustado intentar hacer las cosas perfectas ...quiero decir lo mejor que pueda, es más, hay algunas IDEs para Python que tienen en cuenta dichas reglas y facilitan la tarea, pero aun así yo jamás me veré ovligado a indentar siguiendo unas estrictas reglas de estructuración impuestas en el lenguaje de programación, por que eso implica muchas cosas negativas de las cuales ya comenté alguna, y a mi personalmente no me apetece volver a pasar por ahí, ya toqué bastante en su día mi odiado y medio olvidado Python. Algunas personas justifican la obligación de indentación de Python cómo forma de transmitir/instruir buenos hábitos de programación, pero esto en mi opinión es una chorrada inmensa, una especie de manipulación/tergiversación y/o el modo que tienen muchas personas de someterse a la aceptación de un problema que no tiene nada de positivo, en realidad yo lo veo cómo si a un niño pequeño le gritasen sus padres cada vez que no quiere comer por que la comida que le han preparado no le gusta o por que no tiene hambre o por el motivo que sea, ese niño sabe cómo comer, y ese niño comería si sintiese la necesidad de hacerlo, pero al final el niño acaba comiendo de forma negativa y obligada, para no recibir más gritos. Lo mismo es Python para mi, un mal "instructor". De todas formas, al fin y al cabo, es solo una cuestión de gustos. Saludos!
|
|
« Última modificación: 27 Marzo 2015, 10:04 am por Eleкtro »
|
En línea
|
|
|
|
engel lex
|
efectivamente aun odio python por eso, si salera una sintaxis de backets sería genial... pero tampoco es tanto asunto como para bajar el rendimiento (se podría decir algo similar del ";" en c/c++, ya que el cerca del 20% de los errores en todos los niveles) algo que simplifica ese asunto es el IDE, que lo hace visual (como sublime) o simplemente te hace las validaciones (como netbenas) y te dice que anda bien y que anda mal... pero si, es bastante molesto... y una sangría (desconocía que esa era la traducción, gracias!) con tabulación es diferente que con espacios... y se vuelve algunas veces molesto al copiar codigo desde el navegador Maxel512 sobre lo que tienes que mandar, tendrás que usar los headers para configurar una peticion identica... aunque no debería ser dificil solo es algo como headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36", "Referer" : "http://192.168.1.1/getpage.gch?pid=1002&nextpage=manager_dev_config_t.gch" }
y al conn.request solo le agregas las cabeceras como 3er parametro conn.request(metod,src,headers)
revisa cuales son las cabeceras que envía realmente
|
|
« Última modificación: 27 Marzo 2015, 10:23 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Maxel512
Desconectado
Mensajes: 11
|
Muchas gracias por las respuestas, que vergüenza que de ahi venga el error xD. Adicional mente cuando envíe la petición esta ultima cadena de texto debe ir o no me devuelve el archivo ------WebKitFormBoundaryxTKg6mjLA8C7ia3B Content-Disposition: form-data; name="config"
------WebKitFormBoundaryxTKg6mjLA8C7ia3B--
EDITTodo va bien, arme el header, pero la pagina me devuelve el error de que no estoy logeado, me ha de faltar algun dato o algo. Le meti esto import httplib
def http(host,src,metod,headers): conn = httplib.HTTPConnection(host) conn.request(metod,src,headers) res = conn.getresponse() data = res.read() print(data) headers = { "Host : 192.168.1.1" "Proxy-Connection : keep-alive" "Content-Length : 137" "Cache-Control : max-age=0" "Origin : http://192.168.1.1" "User-Agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36", "Referer" : "http://192.168.1.1/getpage.gch?pid=1002&nextpage=manager_dev_config_t.gch" "Accept-Encoding : gzip, deflate" "Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" "Content-Type : multipart/form-data; boundary=----WebKitFormBoundaryxTKg6mjLA8C7ia3B" "Content-Disposition : form-data; name=config" "Cookie : SID=5=YWRtaW44ODdmOTZlNWI2NjNmMDFmZTIwOTExMWNhM2ZkYTdkMg==" } http('192.168.1.1','/getpage.gch?pid=101&nextpage=manager_dev_config_t.gch/','POST','headers')
Esta es la respuesta del ONT <html> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache, must-revalidate"> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>F660</title> <script> function logout_redirect() { alert("Tiempo de espera excedido, por favor vuelva a conectarse."); document.getElementById("flogout").submit(); } </script> </head> <body> <form name="flogout" id="flogout" method="post" onsubmit="return false;" action="/" target="_top"> <input type="hidden" name="logout" id="logout" value="1"> <input type="hidden" name="logout_from" id="logout_from" value="login_timeout"> </form> <script> logout_redirect(); </script> </body> </html>
y asi es como BurpSuite me muestra que se arma el header a la hora de enviar el request, notese que si envio este, si funciona Adicionalmente me gustaria saber si es posible guardar el attachment, sino me queda todo en texto plano y tendria que copiarlo, y hacer un archivo para el config. Demos. Si no me queda algo asi culo al aire HTTP/1.1 200 OK Server: Mini web server 1.0 ZTE corp 2005. Content-Type: text/html; charset=UTF-8 Accept-Ranges: bytes Connection: close Content-Length: 21728 Content-type: application/octet-stream; Content-Disposition: attachment; filename=config.bin
™™™™DDDDUUUUªªªª El DUUUUU es todo el archivo que esta "cifrado" pero aparece con simbolos raros que no deja copiarlos aca.
|
|
« Última modificación: 28 Marzo 2015, 23:42 pm por Maxel512 »
|
En línea
|
|
|
|
engel lex
|
procura usar la etiquetas GeSHi cuando pegues codigo paraque sea más legible Código: import httplib def http(host,src,metod,headers): conn = httplib.HTTPConnection(host) conn.request(metod,src,headers) res = conn.getresponse() data = res.read() print(data) headers = { "Host : 192.168.1.1" "Proxy-Connection : keep-alive" "Content-Length : 137" "Cache-Control : max-age=0" "Origin : http://192.168.1.1" "User-Agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36", "Referer" : "http://192.168.1.1/getpage.gch?pid=1002&nextpage=manager_dev_config_t.gch" "Accept-Encoding : gzip, deflate" "Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" "Content-Type : multipart/form-data; boundary=----WebKitFormBoundaryxTKg6mjLA8C7ia3B" "Content-Disposition : form-data; name=config" "Cookie : SID=5=YWRtaW44ODdmOTZlNWI2NjNmMDFmZTIwOTExMWNhM2ZkYTdkMg==" } http('192.168.1.1','/getpage.gch?pid=101&nextpage=manager_dev_config_t.gch/','POST','headers')
realmente me sorprendería si el script de python te corre... copiaste mi ejemplo y ni si quiera lo viste... te voy a copiar una linea de mi ejemplo y una linea tuya para que notes las pequeñas diferencias mi ejemplo "User-Agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36",
como tu lo hiciste "Host : 192.168.1.1"
como debería ser lo que hiciste "Host" : "192.168.1.1",
igual revisa el frame con wireshark a ver que tan diferente es
|
|
« Última modificación: 29 Marzo 2015, 00:46 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Maxel512
Desconectado
Mensajes: 11
|
Si, estaba pensando en usar wireshark para ver en que no coincidían. Si ya arregle eso tambien, tonto yo.
EDIT
Estuve mirando a travez de wireshark y es como que los headers no me los tomara, no los manda. Ademas de que la request tiene que ser del tipo POST using multipart/form-data
|
|
« Última modificación: 29 Marzo 2015, 07:32 am por Maxel512 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda con un script de envio en PHP
PHP
|
jcroot
|
8
|
3,181
|
8 Abril 2007, 18:54 pm
por jcroot
|
|
|
Creacion script en PHP para envio automatico de e-mails con adjuntos.
Desarrollo Web
|
UrbanIT
|
1
|
6,560
|
7 Febrero 2012, 12:02 pm
por UrbanIT
|
|
|
Publicadas las medidas que Google propone para cumplir con las peticiones de....
Noticias
|
wolfbcn
|
0
|
1,289
|
25 Abril 2013, 18:26 pm
por wolfbcn
|
|
|
¿Como se podria envenenar las peticiones DNS para crear una URL transparente?
Bugs y Exploits
|
Br1ant
|
2
|
4,012
|
9 Febrero 2014, 14:54 pm
por dRak0
|
|
|
Configuración de Apache para que permita peticiones a subdirectorios.
Desarrollo Web
|
0xDani
|
4
|
2,622
|
10 Marzo 2014, 03:52 am
por #!drvy
|
|