본문 바로가기

wargame/suninatas

[suninatas]challenges 01

challenges 01


문제

<%
    str = Request("str")
    // 사용자가 서버로 보내는 요청이나 데이터를 얻어내는 역할

    If not str = "" Then
        result = Replace(str,"a","aad")
        // a → add
        result = Replace(result,"i","in")
        // i → in
        result1 = Mid(result,2,2)
        // result1 = result의 두 번째 ~ 세 번째 글자
        result2 = Mid(result,4,6)
        // result2 = result의 네 번째 ~ 아홉 번째 글자
        result = result1 & result2

        Response.write result
        // result를 출력한다

        If result = "admin" Then
        // result가 "admin"이라면
            pw = "????????"
        End if
    End if
%>



처음에는 <% %>를 PHP로 착각했는데 ASP의 스크립틀릿이라는 것을 알았다.
이를 바탕으로 ASP의 함수를 공부했다.

replace(str, from_str, to_str) : str에서 from_str을 to_str으로 바꿔 반환하는 함수
mid(str, pos, len) : str을 pos번째부터 len 길이만큼의 문자를 반환하는 함수
& : 연결연산자, 문자열을 합침

위의 문제는 즉 str에서 a를 aad로 바꾸고 i를 in으로 바꾼뒤 두 번째 글자부터 아홉 번째 글자까지 자르고 그 값이 admin과 같다면 pw를 출력한다는 뜻이다.
우선 admin이 나오기 위해 aad와 in을 거꾸로 바꾸면 (a)admin → ami가 된다.
aadmin은 9글자가 되지 않지만 mid함수가 aadmin의 6글자 이상을 처리하지 않을 것이라 가정하고 aadmin을 str에 집어넣었다.



congratulation과 함께 authkey가 출력된다

AUTH 페이지에 authkey를 입력하면 문제 해결



'wargame > suninatas' 카테고리의 다른 글

[suninatas]challenges 05  (0) 2019.10.03
[suninatas]challenges 04  (0) 2019.10.01
[suninatas]challenges 03  (0) 2019.09.18
[suninatas]challanges 02  (0) 2019.09.17