-
[L.O.S] Level 17 - zombie_assassinWargame/L.O.S 2022. 12. 5. 04:15반응형
Level 17 - zombie_assassin을 풀어보자.
코드를 살펴보면 앞의 succubus와 비슷한 문제이다.
하나가 추가되었는데, 입력받는 id와 pw에 addslashes 함수와 strrev 함수가 적용되었다.

<zombie_assassin의 php 코드 내용> strrev 함수는 처음 본 것인데, 입력 받는 것을 반대로 출력하는 함수이다.
아래의 사진을 보면 id와 pw 파라미터에 모두 123을 입력했는데, 321로 출력이 되었다.

<strrev 함수 확인> 우선 succubus와 비슷하게 입력을 해보자.
순서만 바꾸어 입력을 했는데, 백슬래시(\)가 두 개 입력되는 것을 볼 수 있다.
이것은 addslashes 함수에 의해 백슬래시가 하나 더 입력이 된 것이다.

<백슬래시 입력 결과> 어떻게 입력해야 succubus처럼 싱글쿼터(')를 우회할 수 있을까?
addslashes 함수는 ', ", \ 등의 문자에 대해 백슬래시를 하나 더 넣어 문자로 동작하게 하는 함수이다.
그런데 이 문자들은 모두 입력을 했을 때, 이번 문제를 해결할 수 없다.
그러므로 해결을 위해 addslashes가 동작하는 특수 문자 중 NULL을 이용해 보도록 하자.
%00으로 NULL을 입력해주면 아래의 사진처럼 나타나는 것을 확인할 수 있다.
출력 순서에 주의하여 입력을 해주면 ZOMBIE_ASSASSIN Clear!가 출력되며 문제가 해결된다.

<zombie_assassin 문제 완료> 반응형'Wargame > L.O.S' 카테고리의 다른 글
[L.O.S] Level 19 - xavis (1) 2022.12.07 [L.O.S] Level 18 - nightmare (0) 2022.12.06 [L.O.S] Level 16 - succubus (0) 2022.12.05 [L.O.S] Level 15 - assassin (0) 2022.12.05 [L.O.S] Level 14 - giant (0) 2022.12.04