-
<Suninatas> 1번 문제Wargame/Suninatas 2021. 10. 20. 21:22
<내가 푼 방법>
개발자 도구(F12)를 통해 소스를 살펴보면 asp파일인 것을 알 수 있다.
코드를 분석하기 전 사용된 함수 먼저 살펴보겠다.
Request()는 사용자가 입력한 값을 가져온다.
Replace()는 Replace(변수, 변경대상문자, 변경하려는 값)으로 문자열 치환 함수이다.
Mid()는 Mid(변수, 시작위치, 개수)로 문자열 자르기 함수이다.
첫 글자의 위치는 1이며, 시작위치 + 개수 > 변수의 시작위치부터 마지막위치까지의 길이 => 마지막위치까지 표시한다.
&연산자는 문자열을 합치는 기능이다.
코드를 살펴보면 str에 입력값을 넣고, str이 빈 문자열이 아니면 "a"는 "aad"로,
"i"는 "in"으로 치환한 결과가 result가 된다.
result1은 result의 2번째부터 2개, result2는 result의 4번째 부터 6개의 문자를 가진다.
다시 result는 result1과 result2를 합친 문자열이고, 이 result가 "admin"과 같다면 pw값을 획득할 수 있다.
그럼 거꾸로해보면 된다.
"admin"을 우선 나눠야한다. 앞서 result1이 2글자이기 때문에 "ad"를 가지고, result2가 나머지 "min"을 가진다.
따라서 result1과 result2로 나누기 전의 result는 "xadmin"이 된다. (x는 변수)
치환 함수도 역시 거꾸로 적용을 해보면 된다.
우선 "in"을 "i"로 하면 "xadmi"가 되는데, 여기서 앞의 x는 "a"라고 추측해볼 수 있다.
"aad"를 "a"로 하면 "ami"라는 문자열을 확인할 수 있다.
이제 "ami"를 입력하면 인증 키를 획득할 수 있다.
'Wargame > Suninatas' 카테고리의 다른 글
<Suninatas> 7번 문제 (0) 2021.10.31 <Suninatas> 6번 문제 (0) 2021.10.31 <Suninatas> 5번 문제 (0) 2021.10.29 <Suninatas> 4번 문제 (0) 2021.10.24 <Suninatas> 2번 문제 (0) 2021.10.21