목록Hack/Pwnable (32)
CIDY

프젝하는데 머리아파서 문제풀러왔다,, 나름 안 푼것중에 pt적은거 가져왔는데 솔브수를 보면 그렇게 쉬운 것 같지도 않음ㅋㅋ 사실 이제 쉽다고 할 만 게 남아있지도 않다ㅠㅠㅠ 메인은 이렇게 생김. init부터 봐야할듯 착륙? 시드로 랜덤값 4바이트 읽어온다. 그리고 seed[0]을 진짜 시드값으로 씀,, 그리고 그 시드값을 me라는 전역변수에 저장하고 init_map이라는 함수를 수행하는데 함수 내부가 심상치 않으므로 다음에 읽어보자. 88, 8c, 90, 94... 한 칸씩 값들을 저장해준다. 그리고 환경변수 불러온다음 그거 길이 + 1만큼 malloc한다. 그 주소는 또 전역 cp에 저장함. 그리고 v1을 힙으로 strcpy해옴. name_list복사하고,, name_list는 data인데 별 이름들이..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

이거 풀면 300대 진입 가능. 이번 방학 안에 기존 목표인 100위 진입을 해야 한다ㅠㅠ 노트래서 또 힙인가 싶었는데 NX없는것도 그렇고, shellcode 문제일지도. 환경 검색해보니 2.23같음. 메뉴 형식. 1. add_note함수 read_int로 정수 입력받는데 10넘으면 oob라고 함. 근데 signed라 아래쪽 검사는 없음. 별일없으면 s에 name 8글자 입력받음. check함수는 이렇게 생겼는데 puts경고에서도 알 수 있듯이 걍 alphanumeric해야 한다는 뜻. 그리고 note는 전역변수인데 그거 + v1(idx)에 s를 malloc한 주소를 저장하고 끝. 2. show_note함수 마찬가지로 idx입력받고, 아래쪽 검사는 없음. note기준으로 idx세서 거기 있는거를 주소로 ..

머리아플 땐 역시 tw😊 이 문제는 예전에 풀다 만 건데 힙문제였던것같기도 하고.. 메뉴다. 힙 문제인듯. 1. 꽃키우기 0x202024는 cnt같은 개념일듯. 100개만 키울 수 있는듯하다. 그리고 0x28만큼 할당해와서 0으로 쭉 밀어버린다. 그리고 이름의 길이를 unsigned로 size[0]에 입력받음. 근데 size는 signed임. 딱히 size제한은 없는듯. size[0]만큼 할당함. 그리고 거기에 size[0]만큼 입력받음. v0[1]에는 꽃 이름 적고... 그리고 v0[2]부터 꽃 색깔 입력받는데, 23글자면 뒤에 한바이트 남고 넘치지는 않을듯. 그리고 1은 플래그인가? 그리고 202040은 꽃이랍시고 할당한 포인터들 저장해두는 공간 같은데.. [0]에 값이 있으면 v2에 [1]주소부터 ..

이거 풀면 400등대로 올라갈 수 있다... 제목으로 궁예질해보자면 왠지 house of spirit같은 느낌이 든다. malloc문제면 16.04나 18.04일텐데, 제발 18.04였으면 좋겠다고 비는 중. spirited away는 영화 제목이었나보다. leave comment.. 진짜 있는 영화인지 궁금해서 검색했는데 이게 spirited away였구나 ㄷㄷ 무식한 거 티내지 말고 코드나 보러 가야겠다. 메인 기능은 survey함수에 있는 듯하니 들어가보자. 일단 이름 입력받는다. malloc된 곳에 입력받는데, nbytes는 0x3c로 딱 malloc한 사이즈다. 그 다음에 age입력받는다. 왜 이 영화를 보러 왔냐고 묻는다. v7은 ebp - 0x50이고, v3이 딱 0x50이다. 그리고 com..

이제 문제 이름에 note라는 단어가 들어가면 무조건 힙문제라는걸 알아버렸다 역시 메뉴 형식.. 4는 바로 엑싯이고, 나머지를 살펴보자. 1번 메뉴다. v1이 10보다 크면 oob라고 한다. 그게 아니면 0x50만큼 name입력받고, 그걸로 strdup한다. malloc이 왜 없나 했더니 strdup로 처리하는거였다. 그리고 아까 쓴 idx에 malloc주소 넣고 끗남. 근데 카나리랑 딱 0x50차인데 꽉 채울 수 있게 해주네 😗 아 그리고 read_int의 반환을 담는 v1이 signed라서 아래로 oob가능할지도 모름. 참고로 is_printable의 조건은 위와 같다. 중간에 널 끼워서 검사를 끊을 수는 있겠지만, 그럼 strdup에서도 끊기겠지? 2번 메뉴다. 솔직히 메뉴보고 show있어서 기분좋..