이번에 ch4n3 world 에 올린 문제입니당 ㅎㅎ
원래는 FULL RELRO 걸려했는데 익스 다 짜놓은 상태라서 말았습니다.....ㅎㅎ......
문제 컨셉은 졸린 상태에서 코딩하면 이렇게 위험하다! 입니다.
그래서 여기저기 눈에 잘 보이는 취약점이 많아요.
고로 쉬운문제 입니당!
이제 바이너리를 봐봅시다. 있는 취약점을 다 보여드릴게영.
Size 를 받을때 검증을 안해서 memset 으로 leak & overwrite
히든메뉴에서 id check 후에 일어나는 bof
( 사실 안넣으려했고, 다른부분에서도 exploit 이 가능한데 조금이라도 편하게 하시라고 넣었습니다 )
format string bug
if 문에서 체킹을 하는데 break 를 안해서 생기는 overwrite
( 이게 원래 원하던 exploit 방법 입니다 )
sprintf 시 buffer 길이 체크를 안해서 일어나는 overflow
정도의 취약점이 있습니다.
원했던 exploit 방식은 fsb 를 통해서 binary base 를 구하고 sprintf 로 id 를 admin 으로 덮고 memset 으로 canary 를 릭하고 admin 메뉴에서 rop 로 하는건데
워낙 취약점을 많게 내놔서 다른 방법이 많을거 같습니다.
익스는 올리지 않겠습니다 ㅎㅎ 풀어보세영
'Pwnable' 카테고리의 다른 글
[Pwnable.tw] hacknote (0) | 2017.12.10 |
---|---|
[codegate2017] messanger (0) | 2017.12.04 |
[pwnable.kr] syscall (2) | 2017.10.03 |
[DIMI] scan (0) | 2017.09.26 |
[Protostar] heap2 (1) | 2017.09.20 |