Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
QLinspector — Encontrando cadeias de gadgets Java/C# com CodeQL | Kitploit
Ferramentas/GitHubGitHub/synacktiv/qlinspector
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoExploraçãoDesenvolvimento de Payloads
GitHubsynacktiv/qlinspector

QLinspector

Encontrando cadeias de gadgets Java/C# com CodeQL

Ver Repositório
18822há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

QLinspector

Encontrando cadeias de gadgets Java/C# com CodeQL. Mais informações no nosso artigo

Instalação

Clone o repositório

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

Procure por gadgets:

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

Queries

QLinspector.ql

A principal query CodeQL que pode ser usada para encontrar cadeias de gadgets.

aqui está um exemplo com a cadeia de gadgets Aspectj:

aspectj

Executar a query acima às vezes pode retornar muitos falsos positivos. Para filtrá-los, a classe GadgetSanitizer foi adicionada. Você pode adicionar condições para filtrar DataFlow::Node:

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

QLinspectorOld.ql

Query antiga que foi inicialmente desenvolvida. Esta query não usa o modelo de taint do CodeQL, portanto pode retornar resultados diferentes.

BeanFactoryGadgetFinder.ql

Uma query que pode ser usada para encontrar novas cadeias de gadgets baseadas no org.apache.naming.factory.BeanFactory. A classe BeanFactory, permite criar uma instância de qualquer classe com um construtor padrão e chamar qualquer método público com um parâmetro String.

Mais informações neste blogpost: https://www.veracode.com/blog/research/exploiting-jndi-injections-java

CommonsBeanutilsGadgetFinder.ql

Uma query que pode ser usada para encontrar alternativas ao método getOutputProperties usado na cadeia CommonsBeanutils.

Mais informações aqui:

  • 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

Uma query que pode ser usada para encontrar alternativas ao org.apache.naming.factory.BeanFactory. Isso pode ser útil durante a exploração de JNDI.

Mais informações neste blogpost: 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
Baixar ferramenta