전체 글
-
HS CTF 2019 <Return to Sender> Write-UpWeekHack/Pwnable 2019. 6. 8. 10:29
안녕하세요. Luke입니다. HS CTF가 끝난 후 Pwnable 중 단순히 Netcat에 접속하기만 하면 되는 단순한 문제를 빼면 진정한 Pwnable 문제의 시작인 문제였습니다. 그만큼 쉬웠고, 단순한 쉘코드를 이용한 문제였습니다. 뭐 문제에서는크게 힌트를 얻지 못했습니다. 일단 IDA로 열어봤습니다. (사실 C언어 소스코드도 주어졌습니다.) main() 함수 안에 vuln()이라는 함수가 있고, 해당 함수 내에서 gets로 입력값을 받아오기에 버퍼오버플로우 취약점이 발생하게 됩니다. 그럼 이제 해당 바이너리에 포함된 메모리 보호기법을 확인해보았습니다. NX가 걸려있습니다. 쉘코드를 넣는건 안되겠네요. 그래서 다시 분석하던 중 win()이라는 함수를 찾았습니다. win() 함수에는 binsh를 띄우는..
-
HS CTF 2019 & FB CTF 2019 후기개인 일상/Luke 2019. 6. 8. 10:12
안녕하세요 Luke입니다. 밀리고 밀리다 보니 두 CTF 후기를 동시에 올리게 되는 것 같습니다. 먼저 FB CTF에 대해 다뤄보도록 하겠습니다. FB CTF의 경우 일단 난이도가 매우 어려웠습니다. 특히 포너블은 시작부터 Floatoverflow라는 문제로 정말 어려웠습니다.. 그런데.. 은근 웹 문제들이 흥미로웠습니다. 추후에 푼 문제라던지 어쨋든 재밌는 문제들이 많았습니다. 이러한 사항 들은 앞으로 이어서 틈틈히 Write-Up을 써보겠습니다. FB CTF에서는 KorNewbie 팀이 205등을 하였습니다. 그 다음은 HS CTF인데, HS CTF의 경우 High School CTF 답게 문제들이 적절한 난이도들이 많았습니다. 특히 쉬운 난이도부터 어려운 난이도 까지 Heap 문제도 나오고 은근 재..
-
FB CTF 2019 - product manager(100)WeekHack/WebHacking 2019. 6. 7. 02:05
안녕하세요. Luke입니다. 오랜만에 올리는 실제 대회 Write-up이네요! 성공적으로 KorNewbie 팀의 두번째 공식 대회를 마칠 수 있었어서 기분이 좋습니다. 해당 문제는 KorNewbie 팀의 서호님의 도움을 받아 Solve한 문제입니다. 감사합니다. 이번에 푼 문제는 실제 대회에서는 다른 분이 푸셨으나, 뒷북으로 제가 다시 풀어본 문제입니다. 문제 링크: http://challenges.fbctf.com:8087/ php 파일 소스가 주어지는데... 사실상 별로 필요없었습니다.. 뭔가 낚시에 당한 것 같은 느낌..? Products Manager challenges.fbctf.com:8087 문제 페이지를 보면 위와 같이 view, add,, view_own 이 있습니다. 가장 먼저 들어오면..
-
A0V3R Internal CTF 2019 Penguins(by 석지원 형) Write-upWeekHack/Pwnable 2019. 5. 25. 03:22
안녕하세요. Luke입니다. 오랜만에 포스팅을 하는 것 같군요. 어쨋든 군말없이 문제풀이 시작하도록 하겠습니다. 이 바이너리는 올해 초 A0V3R 내부 CTF(지금도 늅늅이지만 더욱더 늅늅이 시절?) 제가 풀 수 있는 모든 문제를 풀고 다음 문제를 건들여 보고 싶어서 건들여본(?) 문제 입니다. 이 문제 덕분에 CTF 도중 Plaid CTF의 ropasaurusrex를 풀며 현장에서 ROP를 익혔으나... 그 당시에는 뭔지도 모르는 까나리에 의해서 못푼 아픔이 있는(?) 문제입니다. 그 이후로 메모리 보호 기법을 하나 씩 조져가면서 공부했으며 드디어 이 문제를 다시 풀어볼 날이 오게 되었네요! 아래 그림은 실제 해당 CTF 당시 나왔던 문제입니다. 일단 해당 바이너리가 내부 CTF여서 흔한 바이너리가 아..
-
메모리 보호 기법이란? - 리눅스에서의 메모리 보호기법 1부시스템 해킹 지식/삽질하며 알아가는 Linux에서의 메모리 보호기법 2019. 5. 9. 20:13
안녕하세요. Luke입니다. 이 카테고리의 글에서는 리눅스에서 사용되는 메모리 보호 기법에 대하여 포스팅을 해보려 합니다. 저는 시스템 해킹을 하게 된 계기가 FTZ로 접한 후, LOB를 풀며 RTL이라는 기법을 익힐 때 쯤, A0V3R CTF가 끝난 후 준하라는 친구가 ROP 기법에 대해 알려준 다음부터 본격적으로 시스템 해킹을 하게 된 것 같습니다. 그러나 제가 느낀 점은 과연 쉘코드를 이용해서 스택 오버플로우를 끝낸 늅늅이 해커가 바로 메모리 보호기법에 대해 수월하게 익히고 익스플로잇을 성공적으로 할 수 있을까 라는 생각이 들었습니다. 그래서 제가 한번 메모리 보호 기법에 대해 풀어서 한번 설명을 해보고, 메모리 보호 기법을 우회하는 방법에 대해 쉽게 풀어써보자 라는 생각으로 포스팅을 시작하게 되었..
-
19회 해킹캠프 CTF ucanfindWeekHack/Pwnable 2019. 5. 9. 01:08
안녕하세요. Luke입니다. 해킹캠프 CTF의 ucanfind 문제를 가지고 왔습니다. 사실 이 문제는 해킹캠프에 참여했을 당시 비슷한 문제를 전에 32비트로 익스를 성공해서 대충 어떻게 익스를 하면 될지에 대해 감이 왔는데 그 때 당시에는 제가 64비트 익스를 못해서 ㅠㅠ 아쉽게 제가 못풀고 팀원에게 구조를 설명해서 다른 팀원이 풀었었던 문제 입니다. 자꾸 기억에 남아서 결국 다시 풀게 되었네요 ㅎㅎ 아참! 이게 출제자의 의도는 아니었답니다. 안에 쉘코드가 숨어있대요! 저도 문제를 푼 뒤 다른 라업보면서 알게되었네요!(참고: http://blog.naver.com/PostView.nhn?blogId=yjw_sz&logNo=221468503138 ) 19회 해킹캠프 CTF ucanfind (libc db..
-
[64비트 ROP] Codegate2018 Qual BaskinRobbins31 문제풀이(1일 1포너블 1일차 by Luke - 2019.4.18<목>)WeekHack/Pwnable 2019. 4. 19. 02:43
안녕하세요. Luke입니다. 1일 1 pwnable 1일차입니다. 60일을 목표로 시작하는데 첫 걸음을 띄었다는 것에 대해 놀랍네요. 오늘 풀 문제는 Codegate2018 예선 문제였던 BaskinRobbins31를 풀어볼 예정입니다. 저번에 풀었던 Ropasaurusrex와는 비슷하고도 다르게 64비트 ROP를 사용하는 문제입니다. 바이너리를 실행시키면 위와 같이 1-3 사이의 숫자를 입력하라고 나오고, 알파벳을 이용하는 등 예상치 못한 경우의 경우 Don't break the rules...:(가 뜨면서 다시 입력하게 합니다. 또한, 정상적으로는 사용자가 이기지는 못하게 되어있는 것 같았습니다..(예전에 되나 안되나 노가다해봤습니다 ㅋㅋ) 먼저 checksec으로 메모리보호기법을 확인해보겠습니다. ..
-
[32비트 ROP] Plaid CTF 2013 RopasaurusrexWeekHack/Pwnable 2019. 3. 28. 21:05
안녕하세요. Luke입니다. 코드게이트 잘 다녀와서 독감이 걸리고 말았네요 흑흑...(어쩐지 코드게이트에서부터 계속 힘들더라고요 ㅠㅠ) 어쨋든 학교를 쉬는 김에 64비트 ROP를 클리어 해보기 위해! 다시 한번 32비트 ROP인 ropasaurusrex를 꺼냈답니다! 먼저 ropasaurusrex 바이너리를 실행시켜보도록 하겠습니다. 참고로 바이너리는 아래의 링크에서 받으실 수 있습니다. https://drive.google.com/file/d/1lRFuHIv5L_xdQrKr28nn3llnB_o1COge/view?usp=sharing ropasaurusrex drive.google.com 어쨋든 그럼 이제 문제를 풀어보도록 하겠습니다. (ROP에 대해 접해보시지 않은 분들을 위해서는... 죄송합니다.....
-
Webhacking.kr 1번 Cookie 문제WeekHack/WebHacking 2019. 3. 15. 02:15
안녕하세요. Luke입니다. Webhacking.kr 1번 문제 쿠키문제를 가져왔습니다. 해당 문제는 예전에 한번 푼적이 있는데 Webhacking.kr 올클리어를 위해서 계정 다시 파고 1번부터 다시 풀고 있습니다. Weekhack 진행하고 난 뒤에 이 문제 풀이를 포스팅한적 없어서 다시 한번 풀이합니다. 일단 1번 문제를 들어가면 아래 그림과 같이 나오게 됩니다. 아래 index.phps를 클릭하시면 소스코드를 볼 수 있습니다.소스코드는 아래와 같습니다 --------------------- ----- index.phps ----- 간단히 php소스를 해석해보겠습니다. 1. user_lv 쿠키가 없을 경우 user_lv쿠키를 생성해 1이라는 값을 저장합니다.2. user_lv 쿠키가 0-9가 아닐 경..
-
pwnable.kr bofWeekHack/Pwnable 2019. 3. 4. 05:59
안녕하세요. Luke입니다. 오늘은 pwnable.kr의 bof문제를 가지고 왔습니다.이런 문제라서 일단 바이너리를 받아서 checksec을 해봤습니다.그 결과, NX와 Canary 그리고 PIE가 걸려있다는 것을 알았죠. 그래서 아 이거 쉘코드를 이용한 bof는 아니구나 라는 생각이 들었습니다. 그래서 IDA로 바이너리를 분석해봤습니다. a1이라는 변수가 -889275714면 system함수로 binsh를 실행시키더군요. 그리고 캡처하지는 않았지만 저 a1에 전달되는 처음 인자 값은 -559038737로 deadbeef입니다. 참고로 -889275714는 0xcafebabe입니다. 바이너리를 실행하면...이렇게 입력하는 칸이 나옵니다. 그리고 거기에 오버플로우를 해서, 인자로 전달되는 a1에 접근할 수..