[SuNiNaTaS/web] 1번 풀이

2019. 8. 1. 14:58문제풀이/suninatas.com

가장 낮은 포인트, 100pt짜리 문제다.

문법을 보니 asp로 쓰여있는걸 알 수 있다.

(사실 asp 문법 몰라서 response.write로 검색해봄)

각 line별로 해석해보면 다음과 같다.

<%
    str = Request("str") // str에 적혀있는 문구를 가져와 str이라는 변수에 입력

    If not str = "" Then // str에 값이 존재할경우
        result = Replace(str,"a","aad") // result = str 내의 a는 aad로 변경한 값
        result = Replace(result,"i","in") // result = result 내의 i를 in으로 변경
        result1 = Mid(result,2,2) // result1 = result에서 2번째부터 총 2글자
        result2 = Mid(result,4,6) // reulst2 = result에서 4번째부터 총 6글자
        result = result1 & result2 // result = result1과 result2 문자열 이어붙임
        Response.write result
        If result = "admin" Then // 최종 result가 "admin"이면 Authkey 획득
            pw = "????????"
        End if
    End if
%>

tistory 코드블럭은 asp를 지원 안해주나 ㅠㅠㅠ아쉽

 

쨌든 저 내용에 따라, 최종 result가 admin이 되도록 역으로 설계하여보자.

먼저, result1은 2글자, result2은 6글자를 가져오기 때문에 최종 result의 글자수는 8글자가 된다.

하지만 admin은 5글자!

최종 글자수가 5글자가 되기 위해서는 어떻게 해야할까?

 

result2에서 6글자를 가져오지만, result2의 문자가 그렇게 길지 않아서 3글자 가져오면 끝이라고 생각하면 최종 result의 글자수는 5글자가 될 수 있다.

그럼 이러한 가정하에 result1과 result2를 통해 알 수 있는 result의 형태는 다음과 같다.

result1을 통한 result : ?ad???
result2을 통한 result : ???min

즉, 여기서 알 수 있는 result의 값은 ?admin 이다.

If not str = "" Then // str에 값이 존재할경우
        result = Replace(str,"a","aad") // result = str 내의 a는 aad로 변경한 값
        result = Replace(result,"i","in") // result = result 내의 i를 in으로 변경

에서 a는 aad로, i는 in으로 변경된다는 것을 알 수 있으므로 result1과 result2에 값을 넣기 전 result 값은 aadmin임을 알 수 있다.

 

문자열 변환 후 값이 aadmin인걸 알았으니,

문자열 변환 전 값(str)이 무엇인지는 aad를 다시 a로, in을 다시 i로 변환하면 알 수 있다.

 

 

Authkey : k09rsogjorejv934u592oi

 

'문제풀이 > suninatas.com' 카테고리의 다른 글

[SuNiNaTaS/MISC] 17번 풀이  (0) 2019.08.01
[SuNiNaTaS/MISC] 13번 풀이  (0) 2019.08.01
[SuNiNaTaS/MISC] 12번 풀이  (0) 2019.08.01
[SuNiNaTaS/web] 3번 풀이  (0) 2019.08.01
[SuNiNaTaS/web] 2번 풀이  (0) 2019.08.01