전체 글 191

Dreamhack_csrf-2(CSRF 취약점)

https://dreamhack.io/wargame/challenges/269/ csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 1. 소스코드 내 사용자 정보 확인 주어진 소스코드 내용 중 사용자에 대한 정보가 있다. id/pw가 guest/guest, admin/찾아야 할 flag값인 두 사용자의 정보이다. 이것을 이용해 로그인을 시도해 보기로 했다. 2. admin으로 로그인 위한 pw 알아내기 login에 들어가서 guest/guest로 로그인 한 결과이다. flag를 획득하려면 admin으로 로그인해야 하는 것 같다. 문제에서 주어진 소스코드 중 아..

dreamhack xss-2(XSS 방화벽 우회)

https://dreamhack.io/wargame/challenges/268/ xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS dreamhack.io 접속 정보 보기 버튼을 누르고 나타난 링크로 접속하니 xss-1과 똑같은 페이지가 나왔다. vuln(xss) page로 들어가니 xss-1과는 다르게 팝업창이 뜨지 않았다. 인터넷에 검색해보니 xss 방화벽 우회 방법을 통해 풀 수 있다고 한다. xss-1과 마찬가지로 cookie가 memo로 전송되도록 하면 된다. flag페이지에서 입력 값을 받는 부분에 아래와 같이 입력해준다. 그..

dreamhack xss-1(XSS 취약점)

https://dreamhack.io/wargame/challenges/28/ xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Client-side Basic dreamhack.io 문제 파일 다운롣 후 접속 정보 보기 누르고 나타나는 링크로 이동 위와 같은 페이지가 열린다. 첫번째 vuln(xss) page 클릭 시 아래와 같은 창이 뜬다. memo클릭 시 hello출력이 나온 화면이 보이고, flag클릭 시 아래와 같이 입력값을 제출 할 수 있는 곳이 나타난다. 여기에 알맞은 값을 넣으면 flag를 얻는 것으로 보인다. 문제 풀이를 위해 주어진 문제 파일에서..

Dreamhack_session-basic(SessionId)

문제 링크 https://dreamhack.io/wargame/challenges/409/ session-basic Description 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Background: Cookie & Session dreamhack.io 1. 문제 파일 다운로드, 문제 내용 확인 문제 파일을 다운로드 하면 app.py파일이 있다. app.py의 코드를 간단히 살펴보니 '아이디 : 비밀번호'로 보이는 내용이 있다. 이것을 이따 적용해 보기로 했다. 접속 정보 보기를 클릭하면 나오는 링크에 접속하고 login버튼을 누르면 아래와 같은 페이지로 이동한다. 이 페이지에서 위에서 봤던 코..

Dreamhack_cookie(쿠키)

문제 링크 https://dreamhack.io/wargame/challenges/6/ cookie 쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Introduction of Webhacking dreamhack.io 1. 문제 파일 다운로드, 문제 내용 확인 문제 파일을 다운로드 받으면 app.py파일이 나온다. 단순 실행은 아무것도 열리지 않고, 코드를 살펴보기로 했다. 코드 내용을 보면 users는 guest와 admin이 있다. admin으로 접속해야 플래그를 얻을 수 있는 구조이다. 간단한 힌트를 얻었으니 위 사진 문제 페이지에서 접속 정보 하단 링크로 접속했다. login으로 이동해서 usernam..

Dreamhack_devtools-sources(개발자 도구)

문제 링크 https://dreamhack.io/wargame/challenges/267/ devtools-sources 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. Reference Tools: Browser DevTools dreamhack.io 1. 문제 파일 다운로드 문제 파일을 다운로드하고 압축을 해제하면 아래와 같이 파일 목록이 나온다. 종류가 다양한 파일이 많아 어떤 것 부터 접근해야 할 지 혼란스러웠다. 지금 공부하는것이 웹 해킹이니까 html파일 중 아무거나 하나 골라 실행해보기로 했다. 나는 project파일을 실행했다.(html파일이면 아무거나 상관 없음) 위와 같은 웹 페이지가 나왔다. 2. 개발자 도구 진입, 검색 내가 접속한 브라우저는 크롬이므로 F12를 ..

Dreamhack_Carve Party(개발자 도구)

문제 링크 https://dreamhack.io/wargame/challenges/96/ Carve Party Description 할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요! dreamhack.io 1. 문제 파일 다운로드 문제 파일을 다운로드하면 zip파일이 다운된다. 압축을 풀면 아래와 같이 HTML파일이 보인다. 파일을 열어보면 호박을 찌르는 페이지가 나온다. 호박을 클릭하면 아래 숫자가 하나씩 줄어든다. 2. 개발자 모드 진입 크롬 브라우저로 페이지를 보고 있으므로 F12를 눌러 개발자 모드로 진입한다. 상단 탭 중 빨간 네모 안에 있는 Sources 탭으로 들어가 소스파일의 내용을 살펴봤다. 클릭 횟수는 counter 변수로 측정되는 것으..

해커스쿨 FTZ level12 - gets 취약점, 버퍼오버플로우(BOF)

id : level12 pw : it is like this 1. 파일 목록 확인(ls) 후 힌트 파일 내용 확인(cat hint) 이번에도 파일 목록에 hint 파일과 함께 attackme 파일이 보였다. hint 파일 내용을 보니 level11의 hint와 비슷한 코드가 나왔다. 이것도 level11처럼 attackme의 소스일 것으로 보인다. level11과의 차이점은 level11은 attackme를 실행하면 입력받은 argv배열 값을 strcpy함수를 이용해 str배열로 복사하는데, 이때 문자열의 길이를 검사하지 않는 strcpy함수의 취약점을 이용해 str배열을 넘치게 해 버퍼오버플로우를 발생시키는 것이었다면 level12는 gets함수를 통해 str 배열에 들어가는 입력값의 크기를 선언된 s..

해커스쿨 FTZ level11 - 환경변수, shellcode, BOF

id : level11 pw : what!@#$? 1. 파일 목록 확인(ls) 후 힌트 파일 내용 확인(cat hint) 소스 코드 내용을 간단히 살펴보았다. 여기서 strcpy함수가 버퍼오버플로우 공격을 가능하게 하는 취약점이다. 이 함수는 복사하는 문자열의 길이를 검사하지 않기 때문에 str로 복사되는 argv[1]의 크기가 str의 크기 256을 초과하는 것이 가능하고, 이것을 이용해 버퍼오버플로우 공격을 하는 것이다. 2. attackme 파일 내용 확인 위 파일 목록에서 눈에 띄는 것이 처음 보는 attackme 파일이다. 이것이 문제풀이의 핵심이 될 것이다. attackme 파일의 내용을 확인(cat attackme)해 보려고 했다. 이게 아닌가보다.. attackme를 실행해보았다.(./at..

FTZ 해커스쿨 level10 - 공유 메모리

id : level10 pw : interesting to hack! 1. 파일 목록 확인(ls) 후 힌트 파일 내용 확인(cat hint) 2. 힌트 내용 해석 두 사용자의 대화방이 공유메모리를 이용하여 만들어졌다고 한다. - 공유 메모리 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리 - 프로세스 간 통신(Inter-Process Communication, IPC) 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로 -> 공유 메모리는 IPC 방식 중 하나이다. key_t 값 : 공유 메모리에 접근 및 할당하기 위한 공유 메모리 번호 3. IPC 정보 확인(ipcs) ipcs : IPC 정보 출력 ipcs -m : 공유메모리 세그먼트 관련 정보만 출력 공유 메모..