본문 바로가기

pwnable.kr lokihardt

[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에선 개잘된.. 더보기