Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
QLinspector — Encontrando cadenas de gadgets de Java/C# con CodeQL | Kitploit
Herramientas/GitHubGitHub/synacktiv/qlinspector
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónDesarrollo de Payloads
GitHubsynacktiv/qlinspector

QLinspector

Encontrando cadenas de gadgets de Java/C# con CodeQL

Ver Repositorio
188221hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

QLinspector

Encontrando cadenas gadget de Java/C# con CodeQL. Más información en nuestro artículo

Instalación

Clona el repositorio

root@kitploit:~
$ git clone https://github.com/synacktiv/QLinspector.git

Buscar gadgets:

root@kitploit:~
$ codeql database analyze log4j --format=sarif-latest --output=log4j.sarif --search-path=./QLinspector/ synacktiv/qlinspector-java-queries

Consultas

QLinspector.ql

La consulta principal de CodeQL que se puede usar para encontrar cadenas gadget.

Aquí hay un ejemplo con la cadena gadget Aspectj:

aspectj

Ejecutar la consulta anterior a veces puede devolver muchos falsos positivos. Para filtrarlos, se ha añadido la clase GadgetSanitizer. Puedes añadir condiciones para filtrar :

Descargar herramienta
DataFlow::Node
root@kitploit:~
/**
 * placeholder for adding sanitizing steps
*/
class GadgetSanitizer extends DataFlow::Node {
  GadgetSanitizer() {
    this.getEnclosingCallable().hasName("")
  }
}

QLinspectorOld.ql

Consulta antigua que se desarrolló inicialmente. Esta consulta no utiliza el modelo de taint de CodeQL, por lo que podría devolver resultados diferentes.

BeanFactoryGadgetFinder.ql

Una consulta que se puede utilizar para encontrar nuevas cadenas gadget basadas en org.apache.naming.factory.BeanFactory. La clase BeanFactory permite crear una instancia de una clase arbitraria con un constructor por defecto y llamar a cualquier método público con un parámetro String.

Más información en esta entrada de blog: https://www.veracode.com/blog/research/exploiting-jndi-injections-java

CommonsBeanutilsGadgetFinder.ql

Una consulta que se puede utilizar para encontrar alternativas al método getOutputProperties utilizado en la cadena CommonsBeanutils.

Más información aquí:

  • https://www.praetorian.com/blog/relution-remote-code-execution-java-deserialization-vulnerability/
  • https://mogwailabs.de/en/blog/2023/04/look-mama-no-templatesimpl/

ObjectFactoryFinder.ql

Una consulta que se puede utilizar para encontrar alternativas a org.apache.naming.factory.BeanFactory. Esto podría ser útil durante la explotación de JNDI.

Más información en esta entrada de blog: https://www.veracode.com/blog/research/exploiting-jndi-injections-java

Recursos

  • https://www.synacktiv.com/publications/finding-gadgets-like-its-2015-part-1.html
  • https://www.synacktiv.com/publications/finding-gadgets-like-its-2015-part-2.html
  • https://www.synacktiv.com/publications/finding-gadgets-like-its-2022.html
  • https://www.synacktiv.com/publications/java-deserialization-tricks
  • https://www.praetorian.com/blog/relution-remote-code-execution-java-deserialization-vulnerability/
  • https://www.veracode.com/blog/research/exploiting-jndi-injections-java
  • https://mogwailabs.de/en/blog/2023/04/look-mama-no-templatesimpl/
  • https://testbnull.medium.com/return-of-the-rhino-analysis-of-mozillarhino-gadgetchain-also-the-writeup-of-hitb-linkextractor-a2074b4ae624
  • https://www.buaq.net/go-53869.html
  • https://b1ue.cn/archives/529.html