
밑에 박스에서 장르를 고르면
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 |