[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - 기드라 취약점 3

2026. 1. 23. 01:56·Security/리버싱

1. 기드라 취약점?

기드라에서 발견된 취약점으로 이번에는 CVE-2019-16941 임의 코드 실행 취약점을 다룬다. 기드라에 XML을 바탕으로 바이너리를 검색하는 Function Bit Pattern Explorer Plugin에서 취약점이 발견되었다. 원인이 되는 코드는 XML파일을 디코딩하는 부분인 FilebitPatterInfoReader.java이다. 이 취약점으로 기드라 9.0.9까지 영향을 받는다. 


2. 구현

기드라에서 Plugin에서 Function Bit Pattern Explorer Plugin을 활성화하고 플러그인을 사용해 Dump Function Pattern infoScripts를 사용해 XML파일을 생성하고 그 파일에 XML 페이로드를 삽입하면 된다. 

12.0에선 사라진 모습

 

<java>
  <object class="java.lang.ProcessBuilder">
    <array class="java.lang.String" length="3">
      <void index="0"><string>/bin/bash</string></void>
      <void index="1"><string>-c</string></void>
      <void index="2"><string>calc.exe</string></void> </array>
    <void method="start"/>
  </object>
</java>

위 코드와 같은 페이로드를 자바 코드에 삽입하고  Function Bit Pattern Explorer가 이 코드를 읽는 순간 계산기가 실행된다.

 

3. XML 취약점

CVE-2019-16941 취약점은 크게 자바의 특정 클래스(XMLDecoder)가 가진 취약점이다.

 

자바의 java.beans.XMLDecoder 클래스는 XML 데이터를 읽어 자바 객체로 복원할 때, 단순히 데이터만 채워 넣는 것이 아니라 XML에 명시된 자바 메서드를 동적으로 실행하는 특성이 있다. 그때  공격자가 XML 태그 내부에 ProcessBuilder나 Runtime.exec 같은 시스템 명령어를 실행하는 코드를 포함시켜 전송하면, 서버는 역직렬화 과정에서 이 명령어를 그대로 실행한다.

 

신뢰할 수 없는 데이터(외부 XML 파일)를 다룰 때 java.beans.XMLDecoder는 절대 사용해서는 안 된다. 이는 자바 시큐어 코딩 가이드라인에서도 "사용 금지" 수준으로 권고하는 사항이다.

 

4. 3줄 요약

  •  구버전(9.1 미만) 'Function Bit Pattern Explorer' 플러그인에서 원격 코드 실행(RCE) 취약점이 발견되었다.
  • XML 파일을 파싱하는 FileBitPatternInfoReader.java가 보안에 취약한 java.beans.XMLDecoder를 사용하여, XML 내부에 정의된 자바 코드를 검증 없이 실행한다.
  • 공격자가 조작한 XML 파일을 기드라 사용자가 불러오게 함으로써, 시스템 명령(예: 계산기 실행)을 수행하거나 시스템을 장악할 수 있다.

 

 

 

 

'Security > 리버싱' 카테고리의 다른 글

[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level4-GO바이너리)  (0) 2026.01.24
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level3)  (0) 2026.01.24
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level2)  (0) 2026.01.22
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level1)  (0) 2026.01.22
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - 00  (0) 2026.01.04
'Security/리버싱' 카테고리의 다른 글
  • [Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level4-GO바이너리)
  • [Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level3)
  • [Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level2)
  • [Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level1)
yt_5246
yt_5246
yt5246 님의 블로그 입니다.
  • yt_5246
    yt의 공부 블로그
    yt_5246
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (61)
      • IT (1)
      • Security (11)
        • 시스템해킹 (3)
        • 리버싱 (6)
        • 암호학 (0)
        • tools (2)
      • Book (0)
      • 자격증 (3)
      • 워게임 (46)
        • DVWA (7)
        • WebGoat (4)
        • webhacking.kr (35)
      • 버그바운티 (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yt_5246
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - 기드라 취약점 3
상단으로

티스토리툴바