오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 adm1nkyj를 함께 풀어볼 예정이다. [wargame.kr] adm1nkyj Description text SQL injection Challenge! (injection) thx to adm1nkyj dreamhack.io ## 문제 설명: 문제 정보를 살펴보면 SQL Injection 공격을 활용하여 풀면 되는 것으로 보인다. ## 문제 풀이 사이트에 접속해보니 다음과 같은 소스 코드가 보인다.
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 login filtering를 함께 풀어볼 예정입니다. [wargame.kr] login filtering Description text I have accounts. but, it's blocked. can you login bypass filtering? dreamhack.io ## 문제 설명: 문제 정보를 살펴보면 로그인 우회를 시도하면 되는 것으로 보인다. ## 문제 풀이 사이트에 접속해보니 다음과 같은 화면이 보인다. 로그인 창이 하나 있다. "get source" 버튼을 통해 소스코드를 확인해보면 다음과 같다. source - 2를 먼저 보자면 아이디와 패스워드를 2개씩 제공해주고 있다. 또한 source - 1의 빨간 박스를 보면 아이..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 md5 password를 함께 풀어볼 예정입니다. [wargame.kr] md5 password Description text md5('value', true); dreamhack.io ## 문제 설명: 문제 정보를 살펴보면 md5('value', true)라는 힌트가 있다. 해당 함수는 php의 함수로 입력한 value의 md5해시값을 바이너리 형식으로 출력해준다. ## 문제 풀이 사이트에 접속해보니 다음과 같은 화면이 보인다. 패스 워드를 검증하는 입력창이 있다. 밑에 "get source" 버튼을 클릭하니 다음과 같은 화면이 출력되었다. 빨간 박스를 살펴보자면 "isset($row[0])" 값이 True를 반환한 경우 flag 값을 얻을 수 ..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 tmitter를 함께 풀어볼 예정입니다. [wargame.kr] tmitter Description text you need login with "admin"s id! create table tmitter_user( idx int auto_increment primary key, id char(32), ps char(32) ); dreamhack.io ## 문제 설명: 문제 정보를 살펴보면 'admin' 계정으로 로그인하면 되는 것으로 보인다. ## 문제 풀이 사이트에 접속해보니 다음과 같은 화면이 보인다. "Sign in"과 "Sign Up" 버튼이 있는데, "Sign in" 버튼을 클릭하여 admin 계정에 대해서 SQL Injection 공격..
이번 포스트에서는 Python Challenge의 Level 24 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 미로 사진이 출력되어 있다. 우선 해당 미로의 시작과 끝을 찾은 다음에 미로를 풀면 되는 것으로 보인다. ## 문제 풀이 : 우선 파이썬을 통해 미로의 시작점과 끝점을 알아내보겠다. ### 공격 코드 : from PIL import Image maze = Image.open("maze.png") w, h = maze.size for i in range(w): # Top line print(maze.getpixel((i, 0))) print("================= Top, Bottom 구별 선 =================") for i ..
이번 포스트에서는 Python Challenge의 Level 23 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 소 사진이 출력되어 있다. 개발자 도구를 확인하면 다음과 같은 문장들을 볼 수 있다. TODO : 사과를 구해야 할 일이 있었나요? 지금이 바로 그 사람에게 사과를 할 좋은 시간이빈다. 이 레벨에서 할일이 딱히 없더라도 그사람에게 좋은 매너를 보여주세요. "this"는 문서화되지 않는 모듈이다. 'va gur snpr bs jung?' "this"라는 파이썬의 모듈을 확인하고, 세 번째 문장을 해석하면 될 것으로 보인다. ## 문제 풀이 : 우선 파이썬의 "this" 모듈을 확인해보겠다. ### 실행 결과 : this는 파이썬의 특수 모듈이다. 또한..
이번 포스트에서는 Python Challenge의 Level 22 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 조이스틱 사진이 출력되어 있다. 개발자 도구를 열어보면 다음과 같다. "white.gif"가 존재한 것을 알 수 있다. 해당 GIF 파일을 다운로드 해보면 다음과 같다. GIF 파일을 밝기를 조절해보면 아래와 같이 여러 개의 점이 존재한다는 것을 알 수 있다. 해당 점들의 위치를 조사하고 이어보면 될 것 같다. ## 문제 풀이 : 우선 파이썬을 통해 해당 파일의 프레임들을 출력해보겠다. ### 공격 코드 : from PIL import Image with Image.open("white.gif") as gif: for f in range(gif.n_..
이번 포스트에서는 Python Challenge의 Level 21 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 파일을 HexEditor로 실행하면 다음과 같다. 헤더의 시작부분은 78 9c이다. 이는 zlib의 확장자이므로 해당 파일을 확장자별로 압축 해제하면 되는 것으로 보인다. ## 문제 풀이 : 파이썬을 통해 해당 파일안의 모든 확장자를 하나씩 확인해보겠다. ### 공격 코드 : import zlib with open("package.pack", "rb") as f: data = f.read() while 1: try: data = zlib.decompress(data) print(data[0:2]) except: break ### 실행 결과 : x9c..
이번 포스트에서는 Python Challenge의 Level 20 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : "주의 깊게 살펴보는 것은 허용하다"는 말과 함께 경고판 사진이 출력되어 있다. 개발자 도구를 확인해보겠다. "unreal.jpg"말고 단서가 없다. 여기서 해당 사진의 헤더 부분을 확인해보면 다음과 같다. Response Headers가 존재한다. 또한 파일의 크기는 2123456789이지만 오직 0-30202만 제공된다는 것도 확인할 수 있다. 파일의 30203부터 확인해보면 될 것 같다. ## 문제 풀이 : 파이썬을 통해 30203부터의 데이터를 확인해보겠다. ### 공격 코드 : import re import urllib.request imp..
이번 포스트에서는 Python Challenge의 Level 19 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 인도 사진이다. 개발자 도구를 확인해보면 아래와 같이 MIME 타입의 이메일이 보인다. 이메일 본문의 데이터를 이용하여 푸면 될 것으로 보인다. ## 문제 풀이 : 우선 데이터를 파일로 저장한 다음에 파이썬을 통해 indian.wav로 변경해보겠다. ### 공격 코드 : import base64 with open("level_19.txt", "r") as f: data = f.read() data = data.replace("\n", "") data = base64.b64decode(data) with open("indian.wav", "wb") a..