본문 바로가기
🗂️CS & Other/Security

[Security] XPATH Injection

by inbeom 2023. 8. 30.
728x90

💡 Xpath란?

  • XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다.
  • XML 표현보다 더 쉽고 약어로 되어 있으며, XSL 변환(XSLT)과 XML 지시자 언어(XPointer)에 쓰이는 언어이다.
  • XPath는 XML 문서의 노드를 정의하기 위하여 경로식을 사용하며, 수학 함수와 기타 확장 가능한 표현들이 있다.

Ex >

<?xml version="1.0" encoding="utf-8"?>
<wikimedia>
  <projects>
    <project name="Wikipedia" launch="2001-01-05">
      <editions>
        <edition language="English">en.wikipedia.org</edition>
        <edition language="German">de.wikipedia.org</edition>
        <edition language="French">fr.wikipedia.org</edition>
        <edition language="Polish">pl.wikipedia.org</edition>
      </editions>
    </project>
    <project name="Wiktionary" launch="2002-12-12">
      <editions>
        <edition language="English">en.wiktionary.org</edition>
        <edition language="French">fr.wiktionary.org</edition>
        <edition language="Vietnamese">vi.wiktionary.org</edition>
        <edition language="Turkish">tr.wiktionary.org</edition>
      </editions>
    </project>
  </projects>
</wikimedia>

/wikimedia/projects/project/@name

  • 모든 project 요소의 name 속성을 선택한다. /wikimedia/projects/project/editions/edition[@language="English"]/text()
  • 모든 영문 Wikimedia 프로젝트의 주소(language 속성이 English인 모든 edition 요소의 문자열)를 선택한다. /wikimedia/projects/project[@name="Wikipedia"]/editions/edition/text()
  • 모든 위키백과의 주소(Wikipedia의 이름 특성을 가진 project 요소 아래에 존재하는 모든 edition 요소의 문자열)를 선택한다.

 

💡 XPATH Injection

로그인 화면

  • ID, PW 값을 입력하고 Login버튼을 누르게 되면 아래와 같은 형식으로 id, pw를 확인하게 된다.
**login = ' [login 입력 값] ' and password = ' [password 입력 값] '**
  • 이때 id 칸에 ' or 1=1 or ‘ 이렇게 입력하고 pw칸을 비워둔 다음 Login버튼을 누르면
login = ' ' or 1=1 or ' ' and password = ' '
  • 이러한 형태가 된다.
  • 그럼 login = ' ' or 1=1 or false 와 같이 입력되기 때문에 or 1=1식 때문에 항상 True가 되어 로그인이 성공하게 된다.
728x90

'🗂️CS & Other > Security' 카테고리의 다른 글

[Security] XSS  (0) 2023.08.30
[Security] Database Backdoors  (0) 2023.08.30
[Security] SQL Injection  (0) 2023.08.30