NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[CTF] Dreamhack crawling 문제 Write-up
CTF Write-up 2022-01-14 20:56:05

반응형

문제) 해당 문제는 Dreamhack CTF Season 1 Round #12에 출제된 문제입니다.

          드림이는 웹 크롤링 사이트를 구축했습니다.
          크롤링 사이트에서 취약점을 찾고 flag를 획득하세요!

 

문제와 함께 Dockerfile과 app.py 파일을 제공한다.

우선 메인 페이지에 접속해 내 블로그 주소를 입력하니 정상적인 크롤링이 되는것을 확인할 수 있다.

크롤링 작동 화면

 

이번에 Dockerfile과 app.py를 열어보았다.

app.py Code

빨간색 부분은 공인 아이피만 입력이 가능하게끔 작성 되어있다.

 

노란색 부분은 입력값을 검사하는 부분인데, IP 주소값이 0.0.0.0인 경우 false 반환,

사설 IP인 경우 "Can you access my admin page~?" 문자열을 반환하고,

HTTP Referer를 검사해 localhost 이거나 127.0.0.1일 경우에도 false를 반환한다.

 

초록색 부분은 FLAG를 출력하는 부분인데 127.0.0.1 즉, localhost 가 입력값으로 주어진 경우에만

FLAG를 출력해준다. 또한 아래쪽에 작성된 코드를 보면 Port Number가 3333일 경우에만 작동한다.

 

localhost ip 접근 불가

 

localhost 문자열 접근 불가

 

이를 우회할 방법을 생각하다가, 입력값 검사 시 HTTP Referrer를 검사한다는 것을 알았다.

참조 주소만 검사하기에 실제 주소를 단축링크 등으로 감싸 입력하면 검사를 우회할 수 있다.

링크 단축 서비스 사용
단축된 링크 복사

 

FLAG가 나올줄 알았는데 나오지 않아 app.py를 다시 살펴보던 중,

localhost의 루트(/)에는 index.html (서버의 기본 페이지)만 있고,

FLAG는 /admin에 존재한다는 것을 확인하여, http://localhost:3333/admin 으로 다시 진행했다.

FLAG 획득

 

반응형


[Linux] Kali Linux 설치 후 apt-get update 에러 문제 해결방법
Linux 2022-01-14 18:15:17

반응형

Kali 에서는 패키지 설치, 삭제, 업데이트 등을 위해서 apt(Advance Packging Tools) 명령어를 사용한다.

이는 Kali와 같은 계열 리눅스인 Debian 계열에 모두 해당한다.

리눅스의 대표적인 두 계열에는 Debian, Redhat 계열로 나누어지는데,

Debian 계열은 앞서 말했듯이 apt, Redhat 계열은 yum 이라는 패키지 관리 도구를 사용한다.

 

보통 리눅스를 처음 사용할때면 수 많은 필수 패키지의 업데이트를 위해,

sudo apt-get update 라는 명령어를 사용한다.

다만, apt-get update 에서 다양한 에러로 업데이트가 되지 않는 경우가 많다.

 

수 많은 이유 중 제일 많이 일어나는 두 가지 에러에 대한 해결 방법을 칼리 리눅스 기준으로 작성하고자 한다.

 

1. 다음 서명이 올바르지 않습니다 (GPG 에러)

 

이 문제는 보통 칼리 리눅스가 정상적인 패키지 여부를 검사하는 인증키 사용과정에서 발생하는 오류다.

인증키가 만료된 상황이 제일 많으며, 인증키를 업데이트 하는 방법은 다음과 같다.

wget -q -O - https://archive.kali.org/archive-key.asc  | apt-key add

이 명령줄을 실행하고, sudo apt-get update 명령을 실행하면, 정상적인 업데이트가 가능하다.

 

2. 404 Not Found 에러 (Repository 설정 문제)

 

이 문제는 업데이트 할 패키지를 가져오는 Source List의 설정이 되지 않았거나,

Source List Site에 접속이 불가능 할때 발생한다.

문제를 해결하기 위해서는 현재 사용 가능한 Source List Site 주소를 추가해주어야 한다.

 

sudo vi /etc/apt/sources.list

이 경로에 있는 파일이 Source List 주소를 설정할 수 있는 파일이다.

해당 명령줄을 입력하면 vi 편집기가 나오고 (다른 편집기를 사용해도 무방하다.)

 

i(insert)를 입력해 내용 삽입 모드로 바꾸어준뒤, sources.list 파일의 모든 내용을 지워준다.

추가할 Source List의 주소는 2022년 1월 14일 기준 정상적으로 사용가능하다.

deb http://http.kali.org/kali kali-rolling main non-free contrib
deb http://http.kali.org/kali kali-last-snapshot main non-free contrib

 

 

지워준 후, 이 두 줄을 입력하고 :wq를 입력해 저장하고 편집기를 종료한다.

그리고 sudo apt-get update 명령을 실행하면, 정상적인 업데이트가 가능하다.

 

반응형


[CTF] Dreamhack FFFFAAAATTT 문제 Write-up
CTF Write-up 2022-01-13 20:40:26

반응형

문제) FIXFIXFIX! FFFAAATTT!

         (문제파일 다운로드에서 받지 마시고, 아래의 링크를 통해서 문제파일을 다운받으시기 바랍니다.)
         문제파일 : https://drive.google.com/file/d/17ESNJryAYuHa3M5GiBIb9r2JNhXLqKBa/view?usp=sharing

 

FFFFAAAATTTT.001

 

drive.google.com

 

문제와 함께 파일이 하나 주어진다.

문제를 읽었을 때 FAT32 File System 관련 문제임을 알수있고, 부트레코드 관련 문제일거라 추측할 수 있다.

파일을 받아 HxD로 열어보면 (기타설정 - 디스크 이미지 열기 - 512 선택) 

시스템 이미지 파일임을 확인할 수 있다.

Fix the Disk!! 문자열 확인 (손상됨)

 

문제는 섹터0 부분에 Fix the Disk!! 라는 문자열이 들어가있어 정상 인식이 불가능한것으로 보인다.

더 자세한 정보를 얻기위해 FTK imager Tool을 사용해 파일을 열어보았다.

FTK 파일 시스템 인식 불가

동일하게 파일시스템을 인식하지 못한다. 보통 이럴경우 부트레코드의 변조나 손상이 주된 이유다.

 

부트레코드란, 컴퓨터 부팅을 시작하는 데 필요한 데이터를 유지 관리하는 데 사용되는 하드 디스크의

저장소 공간 섹션이다. 일반적으로 부팅 레코드는 하드 드라이브의 첫 번째 섹터에 보관되므로

시스템이 응용 프로그램을 시작하는 데 필요한 파일을 쉽게 찾고 읽고 실행할 수 있다.

파일에 액세스하고 부팅을 시작하는 데 필요한 모든 코드는 마스터 부팅 레코드에 포함된다.

 

다시 HxD로 돌아가 BR을 찾아보기로 했다.

보통 FAT32 시스템 이미지의 백업 BR는 섹터 6번에 위치하고 있다.

섹터6에 위치한 백업 BR

 

이 BR을 복사해 적절한 위치에 삽입해주면 인식이 될것으로 보인다.

적절한 위치는 Fix the Disk!!가 도배되어있던 섹터0 영역이다.

보통의 시스템 부트레코드는 섹터0 영역에 위치한다.

정상 BR 덮어쓰기

 

섹터6 영역에 있던 BR을 복사해 섹터0 영역에 덮어씌우고 저장한다.

이제 저장한 파일을 FTK imager를 사용해 열어보았다.

정상적인 파일시스템 인식성공

 

아까와는 다르게 파일시스템 (FAT32) 과 시스템 내부 폴더, 파일들을 정상적으로 확인할 수 있다.

root 폴더 내부

 

내부를 살펴보던중 root Directory 내부에 Dreamhack이라는 폴더를 발견할 수 있었다.

Dreamhack 폴더 내부

 

Dreamhack 폴더를 열어보니 jpeg, png, zip 파일 등이 있었고,

FTK의 Export files 기능을 사용해 Dreamhack 폴더를 추출하였다.

Dreamhack 폴더 내부

 

그 중 noway!.zip 파일을 열어보니 파일은 손상되었지만 부분적인 접근은 가능했다.

noway!.zip 파일 내부 noway! 폴더에 들어가보니 FLAG가 존재할법한 .txt 파일들이 있었다.

하지만 해당 파일들에는 암호가 설정되어 있었다.

암호가 설정되어 있는 파일들

 

암호를 찾기위해 파일시스템 내부의 파일들을 살펴보던 와중,

앞서 추출한 그림 파일들에 의심이 가 HxD로 열어보았다.

그림 파일 중 GG.PNG 파일을 열어보니 zip 파일의 비밀번호를 획득할 수 있었다.

.zip PW : DHDHFIX

 

얻은 비밀번호로 noway!.zip 파일 내부 FINISH_FIX.txt 파일을 열어보니

FLAG를 확인할 수 있었다.

FLAG 획득

 

반응형


[Tools] 가상머신 프로그램 Virtual Box 설치 및 사용법
Tools 2022-01-12 22:06:42

반응형

가상머신이란, 컴퓨팅 환경을 소프트웨어로 구현한 것,

즉 컴퓨터 시스템을 에뮬레이션(가상현실화)하는 소프트웨어다. 

가상머신 상에서 다른 운영 체제나 응용 프로그램을 설치 및 실행할 수 있다.

 

가상머신의 사용을 가능하게 해준 기술들에는 x86 가상화 기술

(AMD-V, Intel VT 등) 들이 있으며, 대부분의 가상머신 프로그램들은

이 두 기술을 기반으로 가상머신을 구현할 수 있다.

 

가상머신 프로그램에는 양대산맥이라고 불리우는 두 프로그램이 있는데,

(VMware, VirtualBox) 그 중 VirtualBox 설치에 대해 소개하고

칼리 리눅스를 설정하는 방법에 대해 소개하고자 한다. 

 

설치방법)

 

1. 우선 VirtualBox 공식 홈페이지에 접속한다.

https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash Important May 17th, 2021We're hiring! Looking for a new challenge? We're hiring a VirtualBox senior developer in 3D area (Europe/Russia/India). New November 22nd, 2021VirtualBox 6.1.30 released! Oracle today released a

www.virtualbox.org

접속 후 'Download VirtualBox 6.1' 버튼을 누른다.

(Version은 계속 업데이트 될 수 있다.)

 

설치파일 다운로드

 

2. 버튼을 누르면 Platform 선택 화면이 나오는데 본인이 사용 중인 OS의 Platform을 선택한다.

맞는 Platform 선택

 

3. 선택 후 클릭하면 설치파일이 다운로드 된다. 설치파일을 실행한다.

Next 클릭
기본값 그대로 Next
원하는 옵션 선택 후 Next
 사용 시 네트워킹이 가능하도록 인터페이스의 접근이 가능해야한다. Yes 클릭
마지막으로 설정을 확인한 뒤 Install 버튼 클릭
설치가 완료되면 Finish 버튼을 눌러 실행한다.

 

가상머신 생성 및 설치 방법)

 

1. 설치가 완료되고 프로그램이 실행되면 이러한 화면이 나온다.

    '새로 만들기' 버튼을 통해 가상머신을 만들어줄 수 있다. 물론 가져오기 기능을 통해

    다른사람이 업로드 한 Virtual Box 이미지를 사용할수도 있다.

'새로 만들기' 버튼을 클릭해 새 가상머신 설정

 

2. '새로 만들기'를 선택하면 이러한 설정 창이 나온다.

     이름은 본인이 식별가능한 가상머신의 이름을 지정해주고,

     머신 폴더는 해당 가상머신의 모든 정보가 저장되는 폴더의 경로다. (기본값 추천)

     종류는 본인이 만들 가상머신의 운영체제 Platform을 지정한다.

     (이 글에선 Kali Linux를 설치할것이므로 Linux를 선택하였다.)

     버전은 설치할 운영체제의 세부버전을 선택한다 (ex) 32bit, 64bit, Debian, Redhat 등)

본인이 설치할 운영체제에 맞추어 선택한다.

 

3. '다음'을 눌러 넘어가면 가상머신에 할당할 메모리 크기를 설정할 수 있다.

     보통 2GB (2048MB) 이상은 설정해 주어야 쾌적하게 사용할 수 있다.

     (본인 컴퓨터의 사양에 맞추어 선택한다.)

 

4. '다음'을 눌러 넘어가면 가상머신의 하드디스크 설정 창이 나온다.

     '지금 새 가상 하드 디스크 만들기' 를 선택하고 '만들기' 버튼을 선택한다.

 

4-1. 하드 디스크 파일의 종류는 원하는 종류로 선택한다.

        (VDI, VHD, VMDK 선택가능)

하드디스크의 파일 종류 선택

 

4-2. 하드디스크의 크기방식을 선택할 수 있다.

        동적할당은 생성이 빠르고, 본인이 가상머신에서 사용하는 용량에 따라 동적으로 크기가 변한다.

        고정크기는 가상머신에 설치하기 전 미리 하드디스크의 크기를 고정하여 선택하는 방식이다.

        원하는 것을 선택하여 '다음'을 클릭한다.

하드디스크 크기방식 선택

 

5. 설정을 완료하면 가상머신이 생성된 화면을 확인할 수 있다.

     이 화면에서 상단 '시작' 버튼을 눌러 가상머신을 구동한다.

가상머신 생성완료

 

6. '시작' 버튼을 눌러 가상머신을 구동하면, 시동 디스크를 선택하는 창이 나오는데,

     시동디스크란, 가상머신에 구동할 운영체제 파일 (보통 .iso 파일)을 선택해서 load 해주면 된다.

시동디스크 선택
'추가' 버튼을 클릭해 .iso 파일을 load한 뒤 '선택' 버튼 클릭

 

7. 시동디스크의 load에 성공하면 이 글에서 설치할 Kali Linux의 경우 Installer menu가 나온다.

     여기서 'Graphical install' 버튼을 화살표와 Enter 키로 선택한다.

 

8. 기본적인 설정은 넘어가고 호스트 이름과 도메인 설정 (홈 네트워크 설정 시에만 설정, 공백) 

     사용자의 이름 설정, 사용자의 암호 설정 등을 진행한다.

호스트 이름 설정
사용자 이름 설정
사용자의 비밀번호 설정

 

9. 기본설정들을 마치고 나면 Kali Linux를 설치 할 하드디스크를 선택할 수 있다.

    '자동 - 디스크 전체 사용'을 선택하고 반드시 앞에서 생성한 가상 하드디스크를 선택해야한다. (VBOX HARDDISK)

    그리고 '모두 한 파티션에 설치'를 선택한다.

자동 - 디스크 전체 사용' 선택
앞서 생성한 가상 하드디스크 선택
'모두 한 파티션에 설치' 선택

 

10. 마지막으로 하드디스크 선택을 확인하고 '파티션 나누기를 마치고

       바뀐 사항을 디스크에 쓰기'를 선택하고 '예'를 선택해 가상 디스크에 Kali Linux 설치를 진행한다.

'파티션 나누기를 마치고 바뀐 사항을 디스크에 쓰기' 선택
'예' 선택 후 '계속'

 

11. 설치가 진행됨을 확인할 수 있다.

12. 설치가 완료되면 재부팅이 되고, 재부팅 후 앞서 설정한 비밀번호를 입력해 Login 할 수 있다.

반응형