HackChang

[Suninatas] 써니나타스 1번 문제 풀이 본문

W4RG4M3/W3B

[Suninatas] 써니나타스 1번 문제 풀이

HackChang 2020. 7. 30. 19:36

level1

이번 문제는 웹 문제다.

php 소스를 볼 수 있고, 해석을 간단하게 해보자면

request로 str을 날리면 아래에서 result값에 대한 연산 후 result가 admin일 경우 pw를 출력해주는 느낌이다.

우선 위의 메세지박스에 문자를 넣고 check를 하면 GET방식으로 쿼리스트링이 날아가는 것을 볼 수 있다.

 

우선 str을 admin으로 넣고, 아래 연산을 진행해보겠다.

  result = Replace(str,"a","aad")
  result = Replace(result,"i","in")
  result1 = Mid(result,2,2)
  result2 = Mid(result,4,6)
  result = result1 & result2

Replace는 해당 문자(문자열)를 치환시켜주는 함수다.

str안에 있는 문자열은 admin이고, 여기서 a라는 문자를 aad라는 문자열로 치환시키면 된다.

첫 번째 줄 실행 결과 - result = "aadmin"

두 번째 줄 실행 결과 - result = "addminn"

Mid함수는 해당 문자열(result)의 n번째(2,4)값 부터 m번째(2,6)값 까지 문자열을 뽑아주는 함수다.

세 번째 줄 실행 결과 - result1 = "dd"

네 번째 줄 실행 결과 - result2 = "minn"

다섯 번째 줄 실행 결과 = result = "ddminn"

 

우리가 원하는 결과인 admin이 아니므로, 위의 과정을 거쳐 admin이 나오는 문자를 찾으면 아래와 같다.

str = ami 일 때,

첫 번째 줄 실행 결과 - result = "aadmi"

두 번째 줄 실행 결과 - result = "aadmin"

세 번째 줄 실행 결과 - result1 = "ad"

네 번째 줄 실행 결과 - result2 = "min"

다섯 번째 줄 실행 결과 = result = "admin"

이렇게 str에 ami가 나오면 우리가 찾는 admin이 나온다.

 

str에 ami를 넣고 체크를 해보도록 하겠다.

인증을 성공했고, 키 값을 보도록 하겠다.

 

위의 키 값으로 인증을 하면 클리어가 된다.

Comments