전체 글 199

bughela - fly me to the moon

wargame.kr의 6번째 문제인 fly me to the moon이다. 이번 문제는 HTTP 패킷을 분석하는 능력이 요구된다. 자바스크립트 게임에서 특정 스코어를 달성해야 플래그를 얻을 수 있는 문제다. 치트 방지 시스템을 우회하라고 되어있는데 자세히 알아보기 위해 Start 버튼을 눌러 플레이해보자. 화면 가운데에 위와 같은 간단한 게임이 제공된다. 일단 어떤 게임인지 알아보기 위해 클릭해서 플레이하면 오른쪽 그림과 같이 구불구불한 막대를 피해서 달리는 일종의 레이싱 게임인 것을 알 수 있다. 만약 벽에 닿아서 죽으면 위와 같은 메시지와 함께 게임이 종료된다. 설명을 읽어보면 31337점을 달성해야 한다고 하는데 점수는 1초에 약 5점씩 올라가므로 이를 달성하려면 6000초, 약 100분은 이 게임..

Lord of SQLInjection - gremlin

지난 글에서도 언급했지만 나는 웹, 특히 데이터베이스 부분에 대해서 많이 취약하기 때문에 이 부분에 대해 공부를 좀 할 필요가 있다. 그래서 인터넷에서도 이런저런 문서를 찾아보고 있긴 한데 얼마전 이 글을 읽고서 LoS, 즉 Lord of SQLInjection 문제를 풀면서 공부하기로 했다. Webhacking Techtree – blog.rubiya.kr 2019년 중순 기준으로 해킹의 분야 중에서 수 년 째 포너블의 강세가 계속되고 있습니다. 그러나 실무에서는 웹해킹의 비중이 아직도 압도적으로 높습니다. 모의해킹 업무를 나가면 90%는 웹이고 blog.rubiya.kr 리버스 엔지니어링도 기초 지식을 공부한 후 워게임 문제를 풀면서 흥미를 가졌던 것처럼 SQL Injection도 문제를 풀어보면서 ..

bughela - WTF_CODE

wargame.kr의 5번째 문제인 WTF_CODE다. 이번에는 약간 쉬어가는 느낌으로 어떤 특별한 기술이 요구되지 않는다. 이번 문제는 특이하게 어떤 프로그래밍 언어로 쓰여진 소스 코드를 해석하는 문제다. 확인을 위해 Start 버튼을 눌러 문제 사이트로 진입하여 소스 코드를 다운받아보자. 문제에서 설명하는 것처럼 다운받은 소스 코드를 메모장으로 열어보면 아무것도 안 보이는 것을 확인할 수 있다. 하지만 드래그를 해보면 공백인지 아니면 표현이 안되는 문자인지 뭔지 모를 데이터가 존재하고 있는 것을 볼 수 있다. 자세한 확인을 위해 16진수 값으로 볼 수 있는 HxD 프로그램으로 열어보면 다음과 같이 0x20, 0x0A, 0x09 3개의 문자로 이루어진 코드임을 알 수 있다. ASCII 테이블을 확인해보..

bughela - login filtering

wargame.kr의 네 번째 문제인 login filtering이다. 차단된 계정에 로그인하는 것이 목적이다. Start 버튼을 눌러 문제를 확인해보면 다음과 같은 간단한 로그인 폼이 나타난다. 따로 자바스크립트로 필터링하는 부분이 없기 때문에 백엔드 단에서 입력값을 검증하고 있다는 것을 알 수 있다. 개발자 도구로 소스를 확인해보면 주석으로 어떤 계정의 아이디와 비밀번호가 두 쌍 적혀있는데 아마 이 계정이 차단된 계정이라 추측할 수 있다. 해당 아이디와 비밀번호로 로그인을 시도하면 차단되었다는 메시지가 나타난다. 다른 요소를 조사해봐도 별다른 정보를 얻을 수 없었기 때문에 get source 링크를 클릭해서 소스 코드를 분석해보자. 주석에서 계정을 저장하는 테이블의 정보를 알려주고 있다. 기본키와 인..

보안 공부, 앞으로 어떻게 할 것인가?(도서, 워게임, 강의)

이제 대학교의 마지막 학년의 마지막 학기가 끝나가면서 누가 시켜서 하는 공부는 끝이 난다. 지금부터는 내가 스스로 공부 계획을 짜서 공부해야 하는 때인데, 어떻게 해야 할 지 각 분야마다 간략하게 계획을 세워서 준비하고자 한다. 가장 최근에 공부한 내용은 리버스 엔지니어링이다. 묵혀두었던 리버싱 입문 도서를 읽으면서 Abex의 크랙미를 풀어봤는데 생각보다 흥미가 생겼기 때문이다. 그 이후로 예전에는 엄두도 못내던 Reversing.kr 문제도 몇 개씩 풀다보니 하면 된다라는 자신감이 조금씩 생기고 있다. 물론 다양한 언어로 짜여진 애플리케이션을 리버싱하거나 언패킹, 복호화, 안티 디버깅 우회같은 고급 기술은 좀 더 공부해야 하지만 그래도 꾸준히 공부하다보면 언젠가 풀 수 있으리라 생각한다. 이렇게 공부한..

기타 2020.12.10

bughela - QR CODE PUZZLE

Wargame.kr의 세 번째 문제인 QR CODE PUZZLE이다. 아직까지는 간단한 퀴즈같은 느낌이라 별 문제는 없다. 이번에도 자바스크립트 문제로 퍼즐 챌린지라고 한다. Start 버튼을 눌러 문제 페이지로 이동해보자. 페이지로 이동하니 옛날에 많이 하던 슬라이드 퍼즐 게임이 등장했다. 근데 타일의 모양을 자세히 보니 일종의 QR 코드 인 것 같은데 이 퍼즐을 완성하면 어떤 QR 코드가 만들어지고 이를 스캔해서 플래그를 얻을 수 있는 것 같다. 빈 공간을 클릭하다보면 퍼즐을 언젠가는 맞출 수 있겠지만 워게임은 퍼즐 게임이 아니기 때문에 다른 방법으로 이를 맞추거나 원본 사진을 알아내야 할 것이다. 일단 소스 코드를 살펴보자. 소스를 확인해 보니 jqp-piece 클래스 div가 퍼즐의 한 칸을 이루..

bughela - flee button

wargame.kr의 두 번째 문제인 flee button이다. 아직까지는 낮은 포인트의 문제로 그리 어렵지 않다. 문제 설명은 버튼을 클릭하라는 것인데 잡을 수가 없다고 한다. 무엇이 문제길래 그런 것일까? Start를 눌러 문제 페이지로 진입해보았다. 지금 마우스 커서가 안보여서 무슨 일인지 모르는 사람도 있을 수 있겠지만 저 click me! 버튼이 마우스가 움직이면 자기도 같이 움직여서 클릭할 수가 없다. 사용자 입력에 그대로 반응하기 때문에 피지컬로 되는 그런게 아니고 자바스크립트를 살펴봐야 할 것 같은데, 일단 개발자 도구로 해당 버튼을 살펴보자. 엄청나게 빠르게 값이 변해서 거의 볼수도 없는 버튼의 속성이다. 마우스가 움직일 때마다 해당 div, 즉 버튼의 style이 변하고 있는데 abso..

Challenge(old) 24

자기 전에 한번 풀어보려고 쉬운 문제를 골랐는데 금방 풀 수 있어서 이렇게 블로그에 포스팅한다. 사실 webhacking.kr에 있는 문제들은 대부분 SQL 문제기 때문에 아직 해당 분야에 공부를 안 한 나로서는 풀기 버겁다. 그래서 PHP나 자바스크립트 문제 위주로 풀고 있는데 그 중에서도 100점짜리, 매우 낮은 단계의 문제를 풀어보았다. 사이트에 접속하면 이상한 주소의 client ip와 유저 에이전트 정보가 표시되고 Wrong IP! 라는 문자열이 사이트 가운데에 출력된다. 개발자 도구로 요청 헤더나 응답 헤더를 살펴봐도 특별한 점을 찾을 수 없는데 특이한 것은 테이블의 client ip에 뭔가 빠진듯한 IP 주소가 적혀 있다는 것이다. 좀 더 알아보기 위해 view-source를 눌러서 소스를 ..