분류 전체보기 207

[논문 리뷰] 손상된 ZIP 파일 복구 기법

이번에 리뷰해 볼 논문은 고려대학교 정보보호대학원에서 2017년에 투고된 손상된 ZIP 파일 복구 기법이라는 논문이다. 논문의 원본은 다음 링크로 가면 볼 수 있습니다. https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002276535 참고 : 센트럴 디렉터리(C/D), 로컬 파일(L/F), 엔드 오브 센트럴 디렉터리(EOCD)로 표현한다. ABSTRACT 압축파일 형식으로 가장 많이 쓰이는 PKZIP 형식은 ZIP 파일뿐만 아니라 MS Office 파일과 안드로이드 스마트폰의 어플리 케이션 파일 등에서 사용되는 파일형식이다. 다양한 영역에서 널리 쓰이는 PKZIP 형..

[Overthewire] level 32 -> level 33

어느덧 마지막 문제네요..!! 열심히 썼다고 썻지만 부족한 부분도 많은 점 알고 있습니당..!! 문제를 보겠습니다. 해석을 해보면, git을 탈출하라?? 느낌이긴 합니다.. (제가 영어를 잘 못해서..) 풀이를 해보겠습니다. 로그인을 해보니, 쉘을 입력할 때 uppercase (대문자) 로 인식을 한다고 되어 있습니다. 이런식으로 말이죠..! 쉘 스크립트 명령어에 대해서는 여기서 참고했습니다. https://m.blog.naver.com/baraem2005/20168719811 그래서 풀이를 이어 보겠습니다. 오타는 실수입니다..ㅎㅎ 그래서 $0 는 쉘 또는 쉘 스크립드의 이름을 가지고 있습니다. 그래서 $0를 입력하면 >>가 $로 바뀌고 bash로 쉘을 취득했습니다. 그다음 패스워드가 있는 경로에서 출..

bandit 2022.06.13

[Overthewire] level 31 -> level 32

문제를 보겠습니다. 전 문제들과 동일합니다. 풀이를 하겠습니다. 여기서는 git으로 add, commit, push의 명령어를 사용해야 됩니다. 기본적인 단계를 거쳐서 README.md까지 출력 하겠습니다. 자..여기까지 했습니다. 해석을 해보면, 원격 저장소에 파일을 푸쉬하고 푸쉬를 할 때, 파일 이름이 key.txt이고 May I come in? 이라는 문자가 저장되어 있으며, branch는 master이다. 그럼, 일단 현재 branch가 무엇인지 보겠습니다. master 브랜치임을 알 수 있습니다. 그다음, key.txt를 만들어 May I come in? 이라는 문자를 넣어 파일을 하나 만들어 봅시다. 이제 준비는 완료 되었습니다. 일반적으로 git 저장소에 자료를 추가 및 업로드 하기 위해서는..

bandit 2022.06.13

[Overthewire] level 30 -> level 31

문제를 보겠습니다. 해석을 해보면, 전 문제와 동일합니다. 풀이를 하겠습니다. 역시, README.md에 아무것도 없었습니다... 전 문제와 동일하게 명령어를 입력했으나 아무것도 찾지 못했습니다. 또 고민을 하면서 구글링을 하다가, 누락된 branch가 있을까? 하고 검색을 해보니 reference를 알게 되었고, branch와 별 차이는 없지만 차이가 있다면 "브랜치가 논리적 명칭이라면, 레퍼런스는 파일 구조상의 명칭" 입니다. 레퍼런스를 show로 보니까 secret이 있었고, secret만 출력해보니 패스워드가 있었습니다.

bandit 2022.06.13

[Overthewire] level 29 -> level 30

문제를 보겠습니다. 해석을 해보면, 전과 똑같습니다. 풀이를 해보겠습니다. 여기까지는 다 했을겁니다. 그리고 출력을 해보겠습니다. commit이 있나 싶어 확인을 해봤습니다. 근데 패스워드가 없네요..! 그래서 고민을 했었습니다. 그러다가 branch 명령어를 알았습니다. branch란? 저장소를 처음 만들면, Git은 바로 'master'라는 이름의 브랜치를 만들어 둡니다. 이 새로운 저장소에 새로운 파일을 추가 한다거나 추가한 파일의 내용을 변경하여 그 내용을 저장(커밋, Commit)하는 것은 모두 'master' 라는 이름의 브랜치를 통해 처리할 수 있는 일이 됩니다. 'master'가 아닌 또 다른 새로운 브랜치를 만들어서 '이제부터 이 브랜치를 사용할거야!'라고 선언(체크아웃, checkout..

bandit 2022.06.13

[Overthewire] level 28 -> level 29

문제를 보겠습니다. 해석을 해보면, 전 문제랑 별 다를게 없어 보이지만, 풀이는 좀 다릅니다 ㅠㅠ 풀이를 하겠습니다. 일단 로그인을 시작하고, 전의 문제처럼 /tmp/경로에, 임시 디렉터리를 하나 생성 하겠습니다. 경로를 가서 git 명령을 사용해서 저장소를 불러왔습니다. README.md를 출력을 하고, git log로 커밋이 있나 봤습니다. commit이 있습니다. 그래서 git show를 입력해서 git show [커밋] 을 입력해보면 패스워드를 찾을 수 있었습니다. password는bbc96594b4e001778eee9975372716b2 입니다.

bandit 2022.06.13

[Overthewire] level 26 -> level27

문제를 보겠습니다. 전 문제랑 이어져있는것 같습니다. 왜냐면 로그인을 해보니까 또 꺼져가지고...ㅋㅋㅋㅋ 풀이를 하겠습니다. 전 문제랑 똑같이 해보겠씁니다. 여기서, 아까는 e 명령어를 썼지만, 이번에는 shell을 바꿔주도록 하겠습니다. 명령어 : set shell=/bin/bash를 한 후, :sh 입력 그럼 bandit26 권한을 가지고 옵니다. bandit27.do 라는 파일이 있네욥 setuid 네요.. 그럼 bandit 패스워드는 /etc/bandit_pass/이니까 저 파일을 실행함으로써 패스워드를 추출 해봅시다. 패스워드가 잘 보이네요!!

bandit 2022.06.12

[Overthewire] level 25 -> level 26

문제를 보겠습니다. 해석을 해보면, bandit25에서 bandit26으로 로그인 하는 것은 쉽다. 단, bandit26은 지금까지 사용했던 쉘인 /bin/bash가 아니라 다른것이다. 그래서 쉘이 뭔지, 어떻게 작동하는지 알아봐달라네요.. 풀이를 하겠습니다. ssh로 접속을 하게끔, sshkey를 하나 주네요..그래서 바로 연결시켜 보겠습니다. 바로 접속이 종료되네요..? 허허허 그래서 아까 문제에 이 친구는 bin/bash가 아니다. 그랬으니까 리눅스에서 사용자계정을 관리하는 passwd파일을 보겠습니다. 옹...showtext?? 라고 적혀있네요 그래서 저기 경로를 실행시켜 보겠습니다. more 명령어로 text.txt를 실행시킨다고 적혀있으니까 more 명령어는 조금씩 창을 보여주니까 터미널을 작..

bandit 2022.06.12

[Overthewire] level24 -> level25

문제를 보겠습니다. 해석을 해보면, 포트 30002를 통해서 로그인을 하는데, bandit24에 대한 암호 + 무작위 4자리 숫자의 핀코드가 제공된 경우 다음 레벨로 가는 암호는 제공한다고 적혀있습니다. 결국엔 그냥 브룻포스를 하라고 하니까 코드를 작성해야 될 것이라고 생각할 수 있습니다. 풀이를 하겠습니다. 그냥 30002에 접속해보겠습니다. bandit24의 패스워드랑 핀번호 1234를 집어 넣었더니 Wrong! 틀렸다. 똑바로 핀코드를 넣어라 라고 적혀있네요... 그래서 코드를 짜야되는데 권한때문에 새로운 디렉터리를 하나 만듭니다. 이제 쉘 코드를 작성하겠습니다. 작성이 완료 되었으면 권한을 777로 바꿔주고 실행을 시키겠습니다. 이렇게 실행을 시키게 되면 다음과 같이 나옵니다. 그럼 그냥 저 pa..

bandit 2022.06.12