티스토리 뷰

Pwnable/Fusion

exploit-exercises.com fusion level03

err0rless313 2015. 11. 3. 01:04

ASLR + NX Bit가 걸려있는 ROP문제이다.


사실 ROP만 문제였다면 굉장히 쉬웠겠지만. 조금 어려운 문제들은

ROP + 부수적인 제한들이 걸려 있어서 그것들을 넘어가는게 약간 힘들다.


이 문제에선 JSON과 HMAC, HashCollision에 대해서 배울 수 있었다.

삽질을 학교에서부터 집까지 했는데 유익한 문제였던것 같다.


일단 ADD 가젯과 pop ebx, pop eax가젯이 모두 있기 때문에 (ropshell.com에서 확인 가능)

got를 이용해서 system을 실행시키는건 굉장히 쉬웠다.


gContents의 값을 system 함수의 인자로 하려 했으나 gContents가 2중포인터여서

불가능했다. 그렇다고 memcpy로 command를 한바이트씩 찾아서 복사하려니 굉장히 귀찮아서 

srand@got(system@libc를 가르킴)와 gContents(우리가 입력한 content 값을 가르킴)가 가르키는 값들을

bss + 0, bss + 8에 넣고 ebp를 bss-4로 설정해준 뒤 FAKE EBP 기법을 이용하여

system(gContents)와 같은 꼴을 만들어 손쉽게 쉘을 획득했다.


확실히 코드가 길어지니 취약점 찾기도 어렵고 익스플로잇 하기도 어렵다.

level04도 빨리 풀고 좀더 많이 공부해야할 것 같다.




'Pwnable > Fusion' 카테고리의 다른 글

exploit-exercises.com fusion level04  (0) 2015.11.07
exploit-exercises.com fusion level02  (0) 2015.01.03
exploit-exercises.com fusion level01  (0) 2014.12.30
exploit-exercises.com fusion level00  (1) 2014.12.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함