본문 바로가기

[Grotesque] Starcraft 마지막으로 글 쓴 날짜가 언젠가 봤더니 작년이다. 1년 전에 쓴걸보니.. 그동안 정말 매우 많이 바빴나보다. 일하는 부서를 옮겼더니, 나랑 평생 연이 없을 줄 알았던 개발. 특히 안드로이드 플랫폼 보안 쪽을 다루며 매일 야근중이다. (살...살려주....) 현재는 잠깐 여유가 나니 문제를 풀 틈이 생겼다. 주말에 2~3시간 정도지만; 이 문제는 취약점이 금방 보였지만 exploit할 때 어떤 부분을 이용해야 할지 많이 고민했다. (아무래도 가끔씩 해킹공부 하다보니 내 기술력이 점차 무뎌져가서 그런게 아닐까 ㅠㅠ) 이 문제는 내 느낌엔 1. C++ 디버깅을 체험해봐라 2. C++ 코딩 시 vtable을 잘못 사용할 경우 어떤 취약점이 발생하는가? 이 두가지를 공부시킬 목적인 듯 하다. 주말마다 짬짬히 하느.. 더보기
[Grotesque] lokihardt 오랜만에 문제를 풀었다. 그간 오랜 공백기간이 있던 것 같은데. 회사에서 이런저런 바쁜 일이 많다보니 문제 풀 시간이 잘 안났다. lokihardt 문제는 실제 lokihardt(갓정훈님)가 Microsoft Edge의 Chakra 자바스크립트 엔진에서 일으킨 취약점(CVE-2016-0191)을 기반으로 만들어졌다. 이런 류의 취약점은 실제로 자주 일어난다고 한다. 이 문제는 아마 HeapSpray 기법을 학습해보라는 의도로 만들어진 듯 하다. 이틀간 문제 푸는동안 많은 공부가 되었다. - 400명 이상 푼 문제는 PoC 코드를 공개하겠다. - 이 글에는 문제 풀이, 힌트 등이 있으니 실력 증진을 원하는 분들은 충분히 삽질한 후 읽어주시길 바란다. 1. 코드 흐름 ======================.. 더보기
[Grotesque] lokihardt (2021.03.28 클리어) 오랜만에 주말에 깔짝 문제 풀 시간이 생겼다. 사실 2주 전에 한번 짬내서 풀어봤다. 그 때는 ubuntu 18.04 환경에서 문제를 분석했는데.. heap chunk 할당방식이 다른가.. 도저히 취약점을 못찾겠더라. 오늘은 lokihardt의 문제서버 환경과 동일하게 ubuntu 16.04로 바꾸어 분석해봤는데.. 취약점이 바로 보이네? 취약점이 바로 보이니까 난 이게 진짜 쉬운 문제라고 생각했는데.. 후. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 처음에는 UAF 일으켜서 Heapspray로 힙 영역을 싹 덮어버리고 type confusion 일으켜서 arraybuffer에 fakeOBJ 생성하고.. got_overwrite를 통해 free(theOBJ)를 system("/bin/sh")로 실행하려고 했다. gdb에선 개잘된.. 더보기