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) > 보안(Security)' 카테고리의 다른 글
[Security] XSS (0) | 2023.08.30 |
---|---|
[Security] Database Backdoors (0) | 2023.08.30 |
[Security] SQL Injection (0) | 2023.08.30 |