이번 포스트에서는 Python Challenge의 Level 10 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 소 그림과 "len(a[30])=?"라는 식이 있다. 해당 식을 풀어내면 되는 것으로 보인다. ## 문제 풀이 : 개발자 도구를 확인해보면 다음과 같은 경로를 볼 수 있다. 해당 경로에 접속해보겠다. ### 공격문 : http://www.pythonchallenge.com/pc/return/sequence.txt ### 실행 결과 : 문제 화면에 나와 있는 리스트 a이다. 해당 리스트의 규칙을 찾아내면 30번째값을 알아낼 수 있을 것 같다. 실제 풀이한 결과, 해당 리스트는 다음과 같은 규칙을 가진다. 이 규칙을 활용하여 파이썬 자동화 코드를 작성하..
이번 포스트에서는 Python Challenge의 Level 9 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 나무 그림 하나가 출력된다. 개발자도구를 확인해보면 다음과 같은 주석 부분이 있다. 점을 연결하라는 제목이 있다. 즉 first+second를 연결하면 될 것 같다. ## 문제 풀이 : 파이썬의 PIL 라이브러리를 이용하여 first와 second 배열의 값들을 연결해보겠다. ### 공격 코드 : from PIL import Image, ImageDraw first = [146, 399, 163, 403, 170, 393, 169, 391, 166, 386, 170, 381, 170, 371, 170, 355, 169, 346, 167, 335, 17..
이번 포스트에서는 Python Challenge의 Level 8 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : missing link를 찾으면 될 것 같다. ## 문제 풀이 : 개발자 도구를 이용하여 페이지 소스를 확인해보면 다음과 같다. ### 실행 결과 : 중간에 "../return/good.html"이라는 링크가 보인다. 해당 링크로 접속해보겠다. ### 링크 : http://www.pythonchallenge.com/pc/return/good.html ### 실행 결과 : 사용자이름과 비밀번호를 입력하라는 창이 있다. 여기서 사용자이름과 비밀번호는 위에 페이지 소스의 주석 부분이다. 해당 주석 부분을 자세히 보면 공통적으로 앞에 "BZh91AY&SY"가..
이번 포스트에서는 Python Challenge의 Level 7 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 중간에 픽셀이 존재하는 사진 한 장이 출력되어 있다. 해당 문제는 포렌식으로 접근하면 될 것 같다. ## 문제 풀이 : 해당 이미지를 다운로드 하여 속성을 확인해보면 다음과 같다. ### 실행 결과 : 높이가 95인 것을 알 수 있다. 사진 속 픽셀은 중간 쯤에 있으니 대략 95 // 2에 위치한다고 볼 수 있다. 이어서 해당 픽셀의 RGB 값을 아스키코드로 출력해보도록 하겠다. ### 공격 코드 : from PIL import Image imgfile = Image.open("oxygen.png") for i in range(imgfile.size[..
이번 포스트에서는 Python Challenge의 Level 6 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 기부하라는 버튼이 있으며 개발자 도구를 이용하여 확인해보며 이라는 힌트를 얻을 수 있다. ## 문제 풀이 : channel.zip으로 접속해보겠다. ### 실행 결과 : zip 파일이 다운로드가 되었으며, 해당 파일을 압축해제하면 위와 같이 여러 텍스트 파일이 존재한다. readme.txt를 확인해보면 90052번부터 시작하며 정답이 zip 파일 안에 있다고 한다. 90052.txt 파일을 확인해보겠다. ### 실행 결과 : 위와 같이 Next nothing이 출력된 것을 확인할 수 있다. 그럼 파이썬 자동화 코드를 작성해서 최종 nothing을 알..
이번 포스트에서는 CTF-D의 내 친구는 이것이 특별한... 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같다. ## 문제 해석 : 해당 이미지 파일에서 플래그를 찾으면 되는 것으로 보인다. ## 문제 풀이 : 문제 파일을 HxD라는 프로그램으로 실행해보니 아래와 같이 플래그처럼 보이는 문구가 있다. ### 실행 결과 : ### Flag : h1d1ng_in_4lm0st_pla1n_sigh7
이번 포스트에서는 CTF-D의 브리타니아의 원더랜드... 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같다. ## 문제 해석 : 해당 이미지 파일의 메시지를 디코딩하여 플래그를 찾으면 되는 것으로 보인다. ## 문제 풀이 : 문제 파일을 실행해보니 다음과 같이 빨간색과 검은색으로 이루어진다는 것을 알 수 있다. 파일의 속성을 확인해보니 다음과 같이 픽셀로 이루어진 것을 알 수 있다. 사진의 색이 두 가지로만 이루어진 것으로 보아 특정 데이터를 이진 코드로 변환해서 반영한 것일 수도 있다. 즉 예를 들면 검정색은 0, 빨간색은 1이라는 이진수를 뜻하는 것일 수도 있겠다는 것이다. 파이썬 코드를 이용해서 이진 코드를 추출하여 아스키코드로 변환해보겠다. ### 추출 코드 : from PIL import Im..
이번 포스트에서는 CTF-D의 Three Thieves Threw Trumpets Through Trees 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같다. ## 문제 해석 : 해당 이미지 파일에서 플래그를 찾으면 되는 것으로 보인다. ## 문제 풀이 : 문제 파일을 다운로드해서 확인해보니 정상적으로 열리지가 않는다. 따라서 HxD라는 프로그램을 통해서 열어보니 확장자가 wave, 즉 동영상 파일인 것을 알 수 있다. 확장자를 wav로 변경해서 실행해보니 이상한 잡음이 들린다. 여기서 라는 툴은 사용해서 동영상을 늘려보고 재실행해보니 뭔가가 들린다. 여기서 다시 영상을 좌우로 뒤집어서 들으니 어떠한 남자가 패스워드를 말하는 것을 들린다. ### 실행 결과 : ### Flag : abracadabra
이번 포스트에서는 CTF-D의 Find Key(moon) 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같다. ## 문제 해석 : 해당 이미지 파일에서 플래그를 찾으면 되는 것으로 보인다. ## 문제 풀이 : https://29a.ch/photo-forensics/라는 사이트를 통해서 분석을 해보겠다. ### 실행 결과 : 우측의 String Extration기능을 통해 분석해보면 다음과 같이 맨 마지막 줄에 flag파일이 존재한 것을 알 수 있다. ### 실행 결과 : flag 파일이 존재한 것을 확인했으니 binwalk라는 툴을 이용해서 추출해보겠다. ### 명령문 : binwalk -e moon.png ### 실행 결과 : 추출한 파일들을 확인해보니 압축 파일이 하나 있는데, 이 안에 flag.tx..
이번 포스트에서는 CTF-D의 Find Key(butterfly) 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같다. ## 문제 해석 : 해당 이미지 파일에서 플래그를 찾으면 되는 것으로 보인다. ## 문제 풀이 : https://29a.ch/photo-forensics/라는 사이트를 통해서 분석을 해보겠다. ### 실행 결과 : 우측의 Level Sweep 기능을 통해 분석해보면 다음과 같이 플래그가 보인다. ### 실행 결과 : ### Flag : sun{RE4DY_THE_4CID_M4GNET!}