SuNiNaTaS

Web Level2




2번째 문제입니다. 겉으로만 보면 SQLi 문제로 보이는데.. Join밖에 없네요. 소스를 한번 확인 해 보도록 하죠.



소스상에는 js로 가입 하는 부분이 구현되어있습니다. 따로 db에 저장하거나 하진 않고, id와 pw가 같을 경우 해당 값들을 초기화시키는 부분이 있습니다.

그런데 아래 힌트를 보니 id와 pw가 같게 만들라고 합니다.

chrome의 개발자 도구를 이용하여 직접 때려박으면 쉽게 우회가 가능합니다.



위와 같이 직접 js 코드를 때려박아주면 Authkey를 뱉어줍니다.


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

SuNiNaTaS Web Level6  (2) 2016.05.09
SuNiNaTaS Web Level5  (4) 2016.05.09
SuNiNaTaS Web Level4  (9) 2016.05.07
SuNiNaTaS Web Level3  (2) 2016.05.06
SuNiNaTas Web Level1  (0) 2016.05.06

SuNiNaTas

Web Level1




첫 번째 문제입니다. <%를 봐선 asp로 짜인 소스인것같습니다. 인증 루틴을 확인 해 보니 result 변수에 "admin"이 들어가 있을 때 Authkey를 뱉어내는 것 같습니다.

그 위를 확인 해 보니 result 변수에는 result1과 result2를 &연산 한 값이 들어가는데, 얼핏 보면 문자열끼리 비트연산을 하는 것 같지만 ASP에서는 &가 문자열의 연결을 뜻합니다. PHP의 .과 같은 역할을 한다고 보면 되겠네요.

result1과 result2는 모두 Mid연산으로 문자열을 잘라내는데, result1은 2번째 인덱스부터 2개의 문자를 빼오고 result2는 4번째 인덱스부터 6개의 문자를 빼옵니다. 이렇게 빼내온 문자열을 연결했을 때 admin이라는 문자열이 나와야하네요.

처음에 우리가 입력한 str 변수를 a -> aad, i -> in으로 치환하니, 치환 된 상태에서 어떻게 result1, 2가 구성 될 지 생각을 해야합니다.

만약 str에 'ami'를 입력한다면 다음과 같이 result 값이 나옵니다.


aadmin


여기서 result1, result2를 생각 해 본다면 아래와 같습니다.


result1

  ↓

a[ad][min]

        ↑   

      result2



ami를 입력하니, 우리가 생각 했던 대로 Authkey를 내뱉고 Level1이 종료됩니다.



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

SuNiNaTaS Web Level6  (2) 2016.05.09
SuNiNaTaS Web Level5  (4) 2016.05.09
SuNiNaTaS Web Level4  (9) 2016.05.07
SuNiNaTaS Web Level3  (2) 2016.05.06
SuNiNaTas Web Level2  (0) 2016.05.06

+ Recent posts