본문 바로가기

SuNiNaTaS/web

suninatas - Level 1

728x90
반응형

http://suninatas.com

 

써니나타스

웹해킹, 포렌식, 리버싱, 암호학, 해킹 워게임 제공.

www.suninatas.com

써니나타스의 Level 1을 들어가면 아래와 같은 페이지가 뜬다. 

 
<%
str = Request("str")

If not str = "" Then
result = Replace(str,"a","aad")
result = Replace(result,"i","in")
result1 = Mid(result,2,2)
result2 = Mid(result,4,6)
result = result1 & result2
Response.write result
If result = "admin" Then
pw = "????????"
End if
End if
%>

제공된 소스 코드는 ASP다. 

먼저 사용된 함수를 알아보면 다음과 같다. 

 

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

str의 "a"를 "aad"로 바꿔라.

 

result1 = Mid(result, 2, 2)

Mid는 문자열의 지정 위치에서부터 지정한 길이의 문자열을 출력하는 함수다. 

result의 2부터 2개의 문자열을 출력한다. 

 

함수를 알아봤으니 이제 답을 구해보도록 한다. 

소스코드의 아랫부분을 보면 result의 값이 "admin"일 경우에 pw를 알려주는 것 같다. 

 

결과가 admin이 되어야 하므로 아래에서부터 하나씩 올라가면서 답을 구해야 한다. 

 

result1 = Mid(result, 2, 2)

result2 = Mid(result, 4, 6)

result = result1&result2

 

result1과 result2의 and 연산 결과가 admin이 되어야 한다. 

이때 result1과 result2 둘 다 result의 문자열을 잘라 각각 저장한 값이다.

그러므로 result의 값은 *admin일 것이다. (첫 번째 값은 모르기 때문에 *로 표기함)

 

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

 

아래에서부터 하나씩 살펴보도록 한다. 

result1의 문자열에서 i를 in으로 변경해야 한다. 

현재 result의 값이 *admin이고 "in"이 포함된다.

result가 *admi인 것을 알 수 있다. 

 

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

result는 맨 처음 str의 "a"를 "aad"로 변경해야 한다.

위에서 result의 문자열이 "*admi"라고 유추했는데 *의 값이 "a"라고 생각하면 result의 값은 "aadmi"가 된다.

그리고 "aad"는 "a"로 변경해야 한다.

그러면 최초의 str 값은 "ami"가 된다.

"ami"를 입력하면 아래와 같이 Authkey 값이 출력된다.

Authkey : k09rsogjorejv934u592oi 

728x90
반응형

'SuNiNaTaS > web' 카테고리의 다른 글

suninatas - Level 6  (0) 2022.04.30
suninatas - Level 4  (0) 2022.04.29
suninatas - Level 7  (0) 2022.04.29
suninatas - Level 3  (0) 2022.04.29
suninatas - Level 2  (0) 2022.04.29