본문 바로가기
반응형

워게임58

[wechall challenge] Training: Crypto - Caesar 1 [wechall challenge] Training: Crypto - Caesar 1 - Explanation - Crypto - Caesar Ⅰ는 위 글을 해석해 보면 암호학에서 가장 기본이 되는 Caesar Cipher에 대한 개념을 알려주는 문제인 것 같다. Caesar Cipher는 암호학에서 가장 기본으로 다루는 암호로 key 값 만큼 해당 문자를 왼쪽 혹은 오른쪽으로 쉬프트 해서 암호문을 만든다. 위 글에 Wiki 링크가 있는데 클릭해 보면 Caesar Cipher에 대한 내용을 자세하게 볼 수 있고 아래와 같이 하나의 예시를 그림으로 표현해놨다. 이 문제에서는 우리는 Caesar Cipher에 대한 key 값을 모르기 때문에 모든 key 값에 대해서 다 구해봐야한다. 이러한 작업은 수동으로 .. 2019. 7. 8.
[wechall challenge] Training: Stegano 1 [wechall challenge] Training: Stegano 1 - Explanation - 이 문제는 Steganography에 대한 문제이다. Steganography란 사진 속에 텍스트나 파일 같은 정보를 숨기려고 할 때 사용이 되며, 데이터 은폐 기술 중 하나이다. 알고리즘을 이용해서 상대방이 이해할 수 없는 메시지를 작성해 그 안에 비밀을 숨겨놓는 암호화와는 비슷해 보이지만 전혀 다르다. 위에 적힌 말을 보면 기본적인 image를 활용한 stegano라고 적혀져있다. 이 문제는 Steganography가 무엇이냐에 대한 개념만 가지고 있다면 쉽게 해결 할 수 있는 문제로 보인다. 개념만 알고 있으면 쉽게 풀 수 있는 문제이기 때문에 푸는 방법을 간단하게 3개의 순서로 나열하면 아래와 같다.. 2019. 7. 7.
[wechall challenge] Training: Get Sourced [wechall challenge] Training: Get Sourced - Explanation - 위에 적혀있는 말을 해석하면 해결 방법은 이 페이지에 숨겨져 있고, 소스코드 보기를 이용해서 답을 얻을 수 있다고 나와있다. 말 그대로 해당 페이지에 대한 페이지 소스 보기를 이용해서 코드를 확인해서 문제를 풀으라는 것 같다. 페이지 소스 보기를 통해서 보면 html 소스들이 보이게 되고, 이 안에 문제를 풀 수 있는 답이 있을 것이다. 코드를 전체적으로 훓어보던 중에 밑쪽에 HTML 주석으로 라고 적혀져 있고 스크롤이 밑쪽으로 많이 남아있는데 뭔가 수상해 보인다. 다른 단서가 있는지 찾아보기 위해 스크롤을 밑으로 쭉 내려보니 의외로 쉽게 답을 찾을 수 있었다. HTML 주석 안에는 문제를 풀 수 있을.. 2019. 7. 6.
[webhacking.kr] prob17 [webhacking.kr] prob17 [ 풀이과정 ] 문제에 접속해보면 입력폼과 전송버튼이 있는데 겉으로 생긴건 14번 문제와 똑같이 생겼다... 해당 페이지 소스를 보게되면 unlock이라는 변수에 여러개의 값을 여러 연산자를 이용해 계산된 값을 할당하고 있다.. 여기서도 입력폼에 입력을 한다음에 check 버튼을 누르게되면 sub() 함수가 동작하면서 입력폼에 입력된 값과 unlock 변수에 있는 값을 비교해서 같으면 해당 문제의 인증 password를 알아낼 수 있다.. 그렇다면 unlock 함수에 들어있는 값만 알아내 그 값을 입력해서 보내주게 되면 문제가 풀릴 것이다... 어차피 계산은 직접 하는게 아니기 때문에 개발자 도구에 console창을 이용해서 unlock값을 계산했고 쉽게 값을 알.. 2017. 10. 13.
[webhacking.kr] prob14 [webhacking.kr] prob14 [ 풀이과정 ] 문제에 접속하게 되면 입력폼과 전송버튼이 보인다... 해당 페이지 소스코드를 확인해보면 값을 입력하고 버튼을 눌렀을때 ck() 함수가 동작하면서 해당 입력값을 체크하게 된다. javascript 코드인 ck() 함수의 내용을 보면 ul 변수에 document.URL을 이용해 현재 주소를 가져와 넣은 다음 indexOf 메서드를 사용해서 ul에 ".kr"이 있는 인덱스를 반환한다.. ".kr"이 시작되는 인덱스가 18번째이여서 해당 반환값은 17이였다.. 코드에 나와있는대로 반환값에 30을 곱한 값과 입력폼에 입력된 값을 비교해서 서로 같다면 password를 경고창으로 알려준다.. 개발자 도구에 console창을 이용해서 이 부분을 계산해보면 ul.. 2017. 10. 12.
[wargame.kr] fly me to the moon [wargame.kr] fly me to the moon !난독화를 풀기 위해서는 우선 난독화가 풀린 이후에 실행이 되지 않고 소스 코드형태로 나오게 해야한다. ( 예를들면 eval() 함수 대신에 alert(), document.write()를 이용해준다 ) !난독화를 풀때는 beautifi 같은 사이트를 이용해준다. [ 풀이과정 ] 해당 페이지에 접속해서 보면 비행기 게임을 이용해서 31337점의 점수를 얻게 되면 문제가 풀리게 된다... 우선 재미로 한판 해보니 도저히 게임을 직접 플레이해서는 깰수가 없을것 같다.. 해당 페이지의 소스코드를 살펴보니 javascript 코드가 난독화 되어있었다... 여기서는 위와 같이 난독화된 코드를 풀어주는 사이트를 이용해서 해당 코드를 파악해서 문제를 풀수도 있.. 2017. 10. 9.
[wargame.kr] flee button [wargame.kr] flee button [ 풀이과정 ] 해당 페이지에 접속해서 보니 마우스 커서로 click me 라고 써져있는 부분을 클릭하면 되는데마우스와 계속해서 거리를 유지해서 진짜로 클릭으로 문제를 풀기엔 무리가 있다... 그래서 개발자 도구를 이용해서 해당 소스코드를 살펴보니 click me! 부분을 클릭하게 되면 click 이벤트가 발생하면서key에 대한 값을 넘기게 되는 부분이 있었는데 그부분을 그냥 url 주소창에서 넘겨주게 되면 이 문제는 풀리게 된다... ( click me!를 클릭하게 되면 window.location에 의해서 key=c669라는 값이 넘어가게 된다.. ) 2017. 10. 9.
[wargame.kr] QR Code Puzzle [wargame.kr] QR Code Puzzle [ 풀이과정 ] 페이지 소스를 분석해보니 위쪽에 join_img에 대한 원본 경로가 unescape()안에 들어있었다..개발자 도구를 이용해서 unescape()를 이용해 원본 이미지 경로를 알아냈다../img/qr.png으로 나왔고 해당 경로로 들어가보니 원본 이미지가 있었다. ( 해당 페이지 소스코드를 보면 위쪽에 주석처리 된 부분에 unescape()를 이용해서 원본 이미지의 경로가 적혀있다.. ) qr코드 사이트를 이용해서 해당 QR Code 이미지를 찍었고 http://wargame.kr:8080/qr_code_puzzle/Give_M3_th7_F1aG.php 같은 경로가 나왔다.. 들어가보니 Flag is : cca090303eeb367dfd5.. 2017. 10. 9.