[웹 해킹 & 시큐어 코딩] 04. XXE Injection

2023. 12. 4. 03:00·📗 self-study/📗 inflearn

 

 

 

 

🔥 웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩

 

위아래 1줄씩 띄우고 중요한 부분은 볼드 효과

 

 

 

 

📍 XXE Injection이란?

👉🏻 XML External Entity: XML 외부 개체 주입

👉🏻 json의 등장으로 XML 사용은 줄어든 추세이나 아직 사용하는 곳이 많아서 해당 부분도 고려해야 함

 

 

 

📍 공격 대상

👉🏻 XML 파서 기능이 있는 Application에서 공격을 시도함

👉🏻 해당 기능이 많지는 않으나 레거시 시스템에서는 아직 사용 중이라 해커들의 먹잇감이 되고 있음

 

 

 

📍 공격 원리 분석

// 정상적인 XML Parser 예시
사용자 <-> Application <-> XML 파서 <-> XML

// 비정상적인 XML Parser 예시
				    DTD를 이용한 외부개체 참조
				    --------------		
사용자 <-> Application <-> XML 파서 <-> XML <-> 외부파일

👉🏻 XML에서 끝나는 것이 아니라 외부 파일을 참조하게 함으로써 정보 탈취

 

// 정상적인 입력값
<?xml version="1.0" encoding("UTF-8"?>
	<shop>
    	<food>
        	<name>수박</name>
            <cost>12,000</cost>
        </food>
        <food>
        	<name>사과</name>
            <cost>2,000</cost>
        </food>
	</shop>

// 비정상적인 입력값
<?xml version="1.0" encoding("UTF-8"?>
<!DOCTYPE test[
<!ENTITY testtest SYSTEM "file://etc/passwd">
]>
<result>&testtest;</result>

👉🏻 SYSTEM이라는 지시어를 사용하여 외부 개체를 참조할 수 있게 하는 비정상적인 입력값

 

 

 

📍 대응 방안

👉🏻 JSON 데이터 형식으로 기능 구현

// 외부 개체 비활성화 소스코드 예시
...
factory = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(xmlFile);
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
...

👉🏻 DTD 및 외부 엔티티 비활성화

👉🏻 XML Parser 기능 비활성화 

 

 

 

출처

웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩

https://www.inflearn.com/course/%EC%9B%B9%ED%95%B4%ED%82%B9-%EB%B3%B4%EC%95%88-%EC%8B%9C%ED%81%90%EC%96%B4%EC%BD%94%EB%94%A9

 

웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩 - 인프런 | 강의

정보보안 입문자와 웹 개발자 분들을 위한 웹 해킹 입문 강의! 본 강의를 시작으로 웹 해킹을 재미있게 시작해보세요!, 웹 개발자, 정보보안 입문자를 위한 웹 해킹 학습!언제, 어떤 위험 상황에

www.inflearn.com

 

 

저작자표시 비영리 변경금지 (새창열림)
'📗 self-study/📗 inflearn' 카테고리의 다른 글
  • [웹 해킹 & 시큐어 코딩] 06. CSRF
  • [웹 해킹 & 시큐어 코딩] 05. XSS
  • [웹 해킹 & 시큐어 코딩] 03. OS Command Injection
  • [웹 해킹 & 시큐어 코딩] 02. SQL Injection
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[웹 해킹 & 시큐어 코딩] 04. XXE Injection
상단으로

티스토리툴바