xxe 구멍 상세 설명 (xml 외부 실체 주입)
1841 단어 구멍 원리
XML: XML 사용 DTD (document type definition) 문서 형식 정 의 는 데 이 터 를 구성 하고 형식 이 통일 되 며 크로스 플랫폼 과 언어 는 업계 에서 공 인 된 기준 이 되 었 습 니 다.XML 은 표준 통용 표기 언어 (SGML) 의 부분 집합 으로 웹 전송 에 매우 적합 하 다.XML 은 응용 프로그램 이나 공급 업 체 에 독립 된 구조 화 된 데 이 터 를 설명 하고 교환 하 는 통 일 된 방법 을 제공한다.
json: 자바 Scaript 대상 표현법 (JavaScript Object Notation) 은 텍스트 정 보 를 저장 하고 교환 하 는 문법 입 니 다.텍스트 양 이 더 작고 빠 르 며 해석 하기 쉬 운 특징 이 있 습 니 다.JSon 은 HTML 과 달리 HTML 은 주로 데 이 터 를 표시 하 는 데 사용 되 고 JSON 은 주로 데 이 터 를 전달 하 는 데 사용 되 기 때문에 보통 데이터 조회 인터페이스 로 사용 된다.
XXE
XML 외부 실체 주입, XXE 구멍 은 응용 프로그램 이 XML 입력 을 분석 할 때 발생 합 니 다. XML 파일 의 해석 은 libxml 라 이브 러 리 에 의존 합 니 다. libxml 2.9 이전 버 전 은 기본적으로 지원 되 고 외부 실체 에 대한 인용 을 열 었 습 니 다. 서버 에서 사용자 가 제출 한 XML 파일 을 분석 할 때 XML 파일 이 인용 한 외부 실체 (외부 일반 실체 와 외부 매개 변수 실체 포함) 를 적합 하 게 처리 하지 않 았 습 니 다.또한 실체의 URL 은 file: / / 와 ftp: / 등 프로 토 콜 을 지원 하여 악성 외부 파일 과 코드 를 불 러 올 수 있 고 임의의 파일 읽 기, 명령 실행, 내부 네트워크 포트 스 캔, 내부 네트워크 사 이 트 를 공격 하고 Dos 공격 등 위 해 를 입 힐 수 있 습 니 다.
XXE 구멍 이 발생 하 는 점 은 xml 파일 을 업로드 할 수 있 는 위치 이 고 업로드 한 xml 파일 을 여과 하지 않 아 악성 xml 파일 을 업로드 할 수 있 습 니 다.
그렇다면 어떻게 외부 실체 주입 을 구축 합 니까?
방식 1: DTD 외부 실체 로 직접 설명
]>
&b;
방식 2: (일반 실체) DTD 외부 실체 성명 을 통 해 외부 DTD 문 서 를 도입 하고 외부 실체 성명 을 도입 합 니 다.
]>
&b;
# http://mark4z5.com/evil.dtd
방식 3: (매개 변수 실체) DTD 외부 실체 성명 을 통 해 외부 DTD 문 서 를 도입 하고 외부 실체 성명 을 도입 합 니 다.
]>
%b;
#http://mark4z5.com/evil.dtd
XXE 는 XML 외부 실체 주입 공격 으로 XML 에 서 는 실체 호출 을 통 해 로 컬 이나 원 격 콘 텐 츠 를 요청 할 수 있 으 며 원 격 파일 보호 와 유사 하여 민감 한 파일 읽 기 와 같은 보안 문 제 를 일 으 킬 수 있 습 니 다.