Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
QLinspector — Finding Java/C# gadget chains with CodeQL | Kitploit
도구/GitHubGitHub/synacktiv/qlinspector
Static AnalysisVulnerability AnalysisCode AnalysisExploitationPayload Development
GitHubsynacktiv/qlinspector

QLinspector

Finding Java/C# gadget chains with CodeQL

저장소 보기
188222개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

QLinspector

CodeQL로 Java/C# 가젯 체인(gadget chain) 찾기. 자세한 내용은 아티클에서 확인하세요.

설치

저장소를 클론합니다.

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

가젯 검색:

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

쿼리

QLinspector.ql

가젯 체인을 찾는 데 사용할 수 있는 기본 CodeQL 쿼리입니다.

다음은 AspectJ 가젯 체인을 사용한 예시입니다:

aspectj

위 쿼리를 실행하면 때때로 많은 오탐(false positive)이 반환될 수 있습니다. 이를 필터링하기 위해 GadgetSanitizer 클래스가 추가되었습니다. DataFlow::Node를 필터링하기 위해 조건을 추가할 수 있습니다:

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

QLinspectorOld.ql

초기에 개발되었던 이전 쿼리입니다. 이 쿼리는 CodeQL의 오염(taint) 모델을 사용하지 않으므로 다른 결과를 반환할 수 있습니다.

BeanFactoryGadgetFinder.ql

org.apache.naming.factory.BeanFactory를 기반으로 새로운 가젯 체인을 찾는 데 사용할 수 있는 쿼리입니다. BeanFactory 클래스는 기본 생성자로 임의 클래스의 인스턴스를 만들고 String 매개변수 하나를 가진 공개 메서드를 호출할 수 있게 해줍니다.

이 블로그 게시물에서 자세한 정보를 확인하세요: https://www.veracode.com/blog/research/exploiting-jndi-injections-java

CommonsBeanutilsGadgetFinder.ql

CommonsBeanutils 체인에서 사용되는 getOutputProperties 메서드의 대안을 찾는 데 사용할 수 있는 쿼리입니다.

자세한 내용은 여기에서 확인하세요:

  • 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

org.apache.naming.factory.BeanFactory의 대안을 찾는 데 사용할 수 있는 쿼리입니다. JNDI 익스플로잇 중에 유용할 수 있습니다.

이 블로그 게시물에서 자세한 정보를 확인하세요: https://www.veracode.com/blog/research/exploiting-jndi-injections-java

리소스

  • 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
도구 다운로드