모의해킹

XML/Xpath injection - Search

editor9386 2025. 2. 23. 14:04

 

 

밑에 박스에서 장르를 고르면 

URl의 genre가 변하면서 해당 장르의 영화 목록들이 나오는 구조

 

취약점 확인을 위해 ' ' 혹은 " "을  주입해본다.

 

 

 

취약점이 존재하는 것 같다

 

아마 추측해보면 $result = $xml->xpath("/heroes/hero[contains(genre, '$genre')]") 

이런식으로 코드가 구성 되있을건데

 

') or 1=1][('a 를 입력해보면  

 

이렇게 장르 상관없이 모든 영화들이 출력이되는데

 

어떻게 작용이 되냐면

실제 쿼리 - xpath("//hero[contains(genre, '$genre')]/movie")]

 

실제 쿼리가 이렇게 되어있는데 모든 hero 태그안에 genre 값이 $genre(변수 값)인 태그를 찾고 그 태그의 movie 태그를 출력한다.

 

xpath("//hero[contains(genre, '') or 1=1 ][ ('a')]/movie")]

 

hero[contains(genre, '') 로 contains 함수를 닫아 주어 정상 쿼리로 인식되게 만든다. contains 함수의 결과는 거짓이 반환될 것이다.

hero[contains(genre, '') or 1=1 ] 에서 ']'로 닫아 주어 정상 쿼리로 만들고, or 1=1 을 통해 [] 안에 결과를 항상 참으로 만들고 있다.

[ ('a')] ​부분은 정상 쿼리로 인식하게 만들기 위해 [(' 를 넣어주고 임의의 문자를 넣어 의미는 없지만 정상적인 쿼리로 만들어준다.

 

'모의해킹' 카테고리의 다른 글

Broken Auth. - Insecure Login Forms  (0) 2025.02.23
Broken Auth. - Forgotten Function  (0) 2025.02.23
XML/XPath Injection (Login Form)  (0) 2025.02.20
SQL Injection - Blind - Time-Based  (0) 2025.02.13
페이로드  (0) 2025.02.12