전체 글 220

[Webhacking.kr] old-05

Login 버튼을 누르면 아래와 같이 이동하고, 어떻게든 login 해보려고 해도 Wrong password 라는 문구만 뜨게 된다. Join 버튼을 누르면 아래와 같은 경고창이 뜬다. 위에서 본 각각의 페이지 소스를 확인해봐도 별로 눈에 띄는 건 없었다. URL로 접근하기 위해 아까 전에 확인한 로그인 페이지의 URL을 살펴보았다. 뒷부분의 login.php 를 지우고 URL 접속을 시도해본 결과, 가능했다 !! 아까 경고창만 뜨고 접속하지 못한 join.php 를 클릭해보았다. 그 결과, access_denied 라는 경고창과 함께 빈 화면이 나왔고, 페이지 소스를 확인해보았다. 아래와 같이 복잡해보이는 소스코드를 볼 수 있었다. 우선, 무작정 콘솔 창에 몇 개의 변수를 확인해봤고, 대충 쿠키 값이 ..

Web/wargame 2022.01.16

[HackCTF] 나는 해귀다

주어진 zip 파일을 풀면, 이런 사진이 나온다 。 。 。 우선 HxD로 waytogo.png를 열어보자. PNG의 헤더 시그니처인 89 50 4E 47 0D 0A 1A 0A를 확인할 수 있다. 푸터 시그니처인 49 45 4E 44 AE 42 60 82도 확인하려고 했는데 끝 부분에 존재하지 않았고, 아래와 같이 검색 기능으로 찾을 수 있었다. 그리고, hex 값을 뒤집어 놓았다는 사진 속의 글처럼 푸터 시그니처 이후로 푸터 시그니처가 역으로 되어 있는 것을 볼 수 있었다. 마찬가지로, 끝 부분에서 헤더 시그니처가 역으로 되어 있는 것을 확인할 수 있다. 역으로 되어 있는 hex 값 부분을 다시 헤더 시그니처부터 역으로 저장하면 뭔가 나올 것 같다 ..! 아래와 같이 파이썬으로 코드를 만들어서 hex 값..

[Dreamhack] Web Hacking STAGE 2

STAGE 2. Background: HTTP/HTTPS 인코딩 표준 1) 아스키 - 알파벳과 특수 문자 등을 표현함 ex) 1000001을 아스키로 변환하면 A가 됨 2) 유니코드 - 모든 언어의 문자를 하나의 표준에 담겠다는 목표로 제정되었음 - 한 문자는 최대 32비트로 표현되어 약 42억개를 표현 가능함 - 최근에는 각종 이모지들도 유니코드에 포함되고 있음 프로토콜 - 규격화된 상호작용에 적용되는 약속 - 각 통신 주체가 교환하는 데이터를 명확히 해석할 수 있도록 문법(syntax)을 포함함 - 표준 통신 프로토콜의 예) TCP/IP, HTTP, FTP 등 HTTP(Hyper Text Transfer Protocol) - 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜 - ..

Web 2022.01.15

[HackCTF] 잔상

문제에서 주어진 compare.zip 파일을 열어보았다. 압축을 풀고, 폴더를 확인했더니 ... 두 개의 jpeg 파일을 볼 수 있고, 겉보기에는 별 다른 차이점이 보이지 않았다. HxD를 이용하여 파일들을 열어보았다. 헤더 시그니처인 FF D8 FF E0은 앞쪽에서 확인했고, 푸터 시그니처를 검색해서 찾았다. 푸터 시그니처 뒷부분을 지워보고 등등 해봤지만 딱히 뭐가 보이지 않았다. 알고 보니, 폴더명인 compare에서 두 파일을 비교하라는 힌트를 주고 있었다 ..! HxD의 비교 기능을 이용해서 두 파일의 다른 부분을 차례대로 살펴본 결과, afterimage_2.jpeg 에서 플래그를 얻을 수 있었다. 다른 방법으로, 아래와 같이 파이썬으로 코드를 짜서 플래그를 얻을 수도 있었다. 참고 https:..

[HackCTF] 세상에서 잊혀진 날 찾아줘!

문제에서 얻은 pdf 파일을 열면, 위와 같은 이미지를 볼 수 있다. 이외에는 딱히 알 수 있는 게 없어서, 우선, PDF 파일의 구조에 대해 알아보려고 한다. 1. PDF Header 2. Body 3. Cross Reference Table 4. Trailer 문제에서 주어진 파일을 HxD로 열어서 PDF 구조에 대해 알아보자. 1. Header - 총 8바이트로 PDF 시그니처와 PDF 문서의 버전 정보를 포함함 - PDF 시그니처인 25 50 44 46 을 확인할 수 있음 - 1.7 버전이라는 것을 확인할 수 있음 2. Body - 실제 문서의 정보들을 포함하는 오브젝트들로 구성되고, 이 오브젝트들은 트리 형태로 링크되어 있음 - 오브젝트의 유형: Boolean, Numeric, String, N..