처음 워게임에 접하시는 분들이 있을 수 있어 문제에 접근하는 방법부터 알려드리겠습니다.

 

http://suninatas.com 사이트를 통해서 워게임을 진행할 수 있으며 CHALLENGES에 접근하여 원하는 분야의 워게임을 시도할 수 있다.

 

써니나타스

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

www.suninatas.com

 

여러 분야가 있지만 저는 WEB을 먼저 중점적으로 생각하고 있어 1번 문제부터 풀어보도록 하겠습니다.


1. 문제

 


2. 문제풀이

바로 문제풀이 진행해보도록 하겠습니다.

 

1줄 - str 변수 선언 / 요청받은 str을 str에 저장하겠다.

2줄 - if 조건문을 통해 str이 아무 값도 없지 않을 경우를 나타내고 있다.

3줄 - Replace 함수를 사용하여  변수 str에 "a" 값은 "aad"로 치환을 한 후 result 변수에 저장하겠다고 나타내고 있다.

4줄 - Replace 함수를 사용하여 이전에 저장한 result변수 값에 "i"는 "in"으로 치환 후 result변수에 저장하겠다고 나타내고 있다.

5줄 - Mid 함수를 이용하여 result변수의 2번째 문자부터 문자 2개를 가져와 result1 변수에 저장하겠다는 것을 나타내고 있다. (인덱스는 0부터 시작이기에 1번째 문자부터 가져옴)

6줄 - Mid 함수를 이용하여 result변수의 4번째 문자부터 문자 6개를 추가적으로 가져와 result2 변수에 저장하겠다는 것을 나타내고 있다.

7줄 - &를 이용하여 result1, result2 두 변수의 값을 합쳐 result에 저장하겠다는 것을 나타내고 있다.

8줄 - 응답을 통해 result 값을 나타내겠다는 것을 의미하고 있다.

9~10줄 - if 문을 통하여 result 변수 값이 "admin" 일 경우 처음 pw(str) 값을 묻고 있다.

 

여기까지 해석을 해보고 이제 역방향을 통해서 처음 str값이 무엇이었는지 찾아야겠다.

 

7줄을 통해 result1 변수와 result2 변수를 통해 마지막 result 변수에 저장함으로 result1, result2 변수 찾기가 먼저라고 생각하였다.

5줄을 보면 result 변수의 2번째 문자부터 2개의 문자를 가져오므로 result1 변수는 OO이라고 추측하였다.

6줄을 보고 result 변수의 4번째 문자부터 6개의 문자를 가져오므로 result2 변수는 OOOOOO이라고 추측하였다.

하지만 합치고 보니 admin 이였다고 하였고 result1에서 두 개를 가져와 ad, result2 에서 두개를 가져와 min이 되었다고 추측하였다.

 

이제 result의 원래 단어를 찾아야겠다고 생각하였고

5줄을 보면 result 변수의 두 번째 문자부터 가져오기에 result 변수는 "Oad"로 되어있다고 추측을 하였다.

이후 6줄을 보면 result 변수의 4번째 문자부터 6개를 가져오기에 minOOO이라고 추측을 하였다.

이전의 "Oad"를 합쳐 OadminOOO이 될 것이라고 최종적으로 추측하였다.

이제 처음 str 값을 찾아야겠다고 생각하였고

4줄을 보면 result변수의 "i" 값을 "in"으로 치환하였다는 것을 보아 역으로 "in" 값을 "i"로 치환해주었다.

"Oadm(in)OOO" -> "Oadm(i)OOO"

이후 3줄을 보면 str 변수의 "a" 값을 "aad"로 치환하여 result 변수에 저장하였기에 "OadmiOOO"에서 처음 "Oad"부분을 "a"로 치환해야겠다고 생각하였다.

"(Oad)minOOO" -> "(a)miOOO"

"amiOOO"으로 추측이 되었고 확실히 나온 "ami" 값을 입력해 보았다.

 


결과는 .....

 

나를 축하해 주었다 ㅎ

 

처음 워게임해보았는데 쉽지 않았으며 재미도 있었고 공부를 더욱 많이 할 필요가 있다고 생각했다.

앞으로 쉽지 않은 문제들이 많이 기다리고 있을 것 같지만 끝까지 가면 내가 다 이긴다 ㅎ

 

*제 개인적인 문제풀이 방식이었으며, 잘못된 점이 있다면 알려주시면 감사하겠습니다.

'워게임 > suninatas' 카테고리의 다른 글

suninatas/웹/6번 문제풀이  (0) 2021.06.14
suninatas/웹/5번 문제풀이  (0) 2021.06.09
suninatas/웹/4번 문제풀이  (0) 2021.05.30
suninatas/웹/3번 문제풀이  (0) 2021.05.28
suninatas/웹/2번 문제풀이  (0) 2021.05.19
복사했습니다!