목록2021/08 (6)
Sechack

갠적으로 재미있었다. 그냥 bof이다. 바이너리는 static이다. 그리고 seccomp가 걸려있다. openat을 필터링하지 않으므로 openat system call을 이용해서 orw해서 플래그 읽어주면 된다. It's time to revenge ! flag is in /home/fbi/flag.txt Note : There is no stdout/stderr in the server , can you manage it this year? nc 40.71.72.198 1236 Author : haflout 문제 설명이다. 서버에는 stdout, stderr가 없다고 한다. 실제로 write를 부르는 쉘코드를 작성해보고 데이터를 출력해보면 로컬에서는 잘 출력되지만 서버로 보내보면 아무것도 출력되지 않..

후... 거의 이틀 걸린것같다. 되게 빡세고 힘들고 재밌고 신기한 문제였다. 일단 close로 stdin, stdout, stderr다 닫아버려서 execve("/bin/sh", 0, 0)을 해도 무용지물이다. 리버스 쉘 따야한다. 다행히 바이너리는 static이어서 가젯은 많았고 가젯 잘 조합해서 _stack_prot덮고 _dl_make_stack_executable 호출해서 스택에 rwx박은다음 리버스쉘 때려박으면 되는 문제이다. 가장 힘들었던건 100byte limit이었는데 쉘코드를 줄이고 rop chain쪽에서 chain길이 안늘어나게끔 절묘하게 레지스터 세팅도 해줘서 쉘코드 몇바이트씩 줄어들게 하고 별짓 다해도 rop chain이랑 합하면 107byte이하로 못줄이겠어서 그냥 서버에 소켓으로 ..

이문제는 소스코드를 제공해준다. 아마 바이너리만 제공했다면 못풀었을것 같다. #include #include #include #include #include //gcc Cshell.c -static -lcrypt -o Cshell struct users { char name[8]; char passwd[35]; }; struct tracker{ struct tracker *next; struct users *ptr; char name[8]; long int id; }; char * alex_buff; char * Charlie_buff; char * Johnny_buff; char * Eric_buff; struct users *user; struct users *root; struct tracker *..

사이트 드가보면 알고리즘 문제 풀라고 한다. 그래서 알고리즘 문제인줄 알았는데 소스코드에 주석으로 달린걸 보면 알고리즘 문제가 아니다. 플래그가 /flag.txt파일에 있다고 한다. 우리가 코드를 입력하면 그게 컴파일되고 서버에서 실행되니까 C언어를 이용해서 플래그를 가져오는 문제임을 짐작할 수 있다. 하지만 system, execve, open, read등 os command 실행이나 orw를 진행하기 위한 함수들은 키워드 필터링이 되어있었다. 하지만 이것은 seccomp같이 system call자체를 필터링하는게 아니라 단순 키워드 필터링이므로 키워드만 안넣으면 된다. C언어의 syscall함수는 필터링되지 않으므로 그걸 사용하면 원하는 system call을 호출할 수 있게 된다. 그래서 다풀었다 ..

이번에 해캠 처음 참가해봤는데 팀이 잘걸려서 1등한것같다. 작년 해캠 웹문제 보니까 생각보다 쉽길래 이번에도 비슷하게 나오겠지 하고 편한마음으로 임했는데 웹이 너무 게싱이었다... 그래서 솔버가 아무도 없어서 주최측에서 웹문제는 문제마다 힌트를 두세개씩 풀었는데 그때서야 할만했다. write up은 내가 풀었던 문제들과 팀원분이 풀었던 문제중에 조금 인상깊었던것들을 올리겠다. Pwnable Welcome 힙 문제이다. 메뉴가 있다. info에서는 target전역변수의 주소를 주는데 pie가 안걸려있으므로 그냥 IDA에서 보면 된다. Malloc함수는 그냥 0x20만큼 힙 할당해주고 거기다가 데이터 입력할 수 있다. Free함수는 선택한 인덱스에 있는 청크를 해제하는데 초기화를 하지 않아서 DFB가 터진다..

보이다시피 top10을 찍었다. 드림핵에는 회원등급, 워게임, CTF 이렇게 총 3가지의 순위가 있는데 그중 워게임이 top10안에 들었다. 매우 기분이 좋다. 회원등급은 열심히 활동해서 그런지 그다지 관심 두지 않았는데도 경험치가 쭉쭉 올라서 4등이다. CTF순위는... 음... 91등... 처참하다... 거의 백지시절일때 Dreamhack CTF몇번 참가해서 한문제도 못풀고 점수 깎였는데... 지금보면 쉬운문제도 되게 많다...ㅎㅎ... 아무튼 언제 순위가 바뀔지는 모르겠지만 지금은 top10!!