본문 바로가기

suninatas.com/Challenge

suninatas(써니나타스) 1번 문제 풀이

안녕하세요. 정보보안 등대지기입니다.

 

오늘은 1번 문제를 풀어보도록 하겠습니다.

 

 

※ 정답만 보지 마시고 실습을 통해 문제를 직접 풀어보시는 것을 추천드립니다.

 

 

1번을 클릭하면 Level 1이라는 문구 아래로 입력 폼이 있습니다.

입력 폼 아래로는 pw의 값을 구하는 소스코드가 보입니다.

아무래도 입력 폼에 찾아낸 pw값을 넣으면 문제는 해결될 거 같습니다.

 

1번 문제 화면

 

주요 소스코드를 해석해 봅니다.

 

◎ str = Request("str")

- 사용자가 입력한 요청값을 str에 저장

 

◎ If not str = "" Then

- 만약 문자열이 빈 칸이 아닐 경우

 

◎ result = Replace(str,"a","aad")

- str 값의 문자열 중 "a"는 "aad"로 변경 후 result에 저장

예) admin => aadmin

 

◎ result = Replace(result, "i", "in")

- result 값의 문자열 중 "i"는 "in"으로 변경 후 앞서 "a"는 "aad"로 변경한 result에 저장

예) aadmin => aadminn

 

◎ result1 = Mid(result,2,2)
- result 값의 문자열 중 2번째 단어부터 2개의 단어만 result1에 저장

예) result = aadminn일 경우 result1 = ad

       

◎ result2 = Mid(result,4,6)

- result 값의 문자열 중 4번째 단어부터 6개의 단어만 result2에 저장

예) result = aadminn일 경우 result2 = minn

 

◎ result = result1 & result2

- result1에 저장된 문자열과 result2에 저장된 문자열을 합침

예) result1 = ad, result2 = minn일 경우 result = adminn

 

◎ If result = "admin" Then

       pw = "????????"

- 만약 result 값이 "admin"일 경우 pw 값은 "????????"다

 

즉, result값이 "admin"이 되게끔 str 값을 완성시키면 되며 그 값이 pw값이다. 라는 뜻입니다.

 

 

 

 

str 값에 "ami"를 넣어 재해석해보겠습니다.

 

◎ str = Request("str")

- 사용자가 입력한 요청 값을 str에 저장

str = ami

 

◎ If not str = "" Then

- 만약 문자열이 빈칸이 아닐 경우

 

◎ result = Replace(str, "a", "aad")

- str 값의 문자열 중 "a"는 "aad"로 변경 후 result에 저장

ami => aadmi

 

◎ result = Replace(result, "i", "in")

- result 값의 문자열 중 "i"는 "in"으로 변경 후 앞서 "a"는 "aad"로 변경한 result에 저장

aadmi => aadmin

 

◎ result1 = Mid(result,2,2)
- result 값의 문자열 중 2번째 단어부터 2개의 단어만 result1에 저장

result = aadmin일 경우 result1 = ad

       

◎ result2 = Mid(result,4,6)

- result 값의 문자열 중 4번째 단어부터 6개의 단어만 result2에 저장

result = aadmin일 경우 result2 = min

 

◎ result = result1 & result2

- result1에 저장된 문자열과 result2에 저장된 문자열을 합침

result1 = ad, result2 = min일 경우 result = admin

 

 

정답은 ami입니다.

 

 

ami 삽입

 

입력 폼에 ami를 넣고 Check를 클릭하면 아래에 Authkey값이 나옵니다.

 

 

문제 해결

 

 

정답 인증키

 

 

1번 문제 풀이는 여기서 마치겠습니다.

보안에 관심 있는 분들이 손쉽게 이해하고 접근할 수 있도록 노력하겠습니다 :)

 

질문 또는 조언해주실 분은 아래 댓글 또는 메일로 남겨주세요.

 

cjh1503123@naver.com