level 4

2020. 9. 5. 11:38

buffer의 크기가 40 즉, RET까지의 길이는 48, main 함수의 인자 개수 2개로 제한, 환경변수 초기화, 48번째 문자 '\xbf'.

 

이로써는 BOF 야기할 방법이 많습니다.

argv[1]의 주소이용 또는 RET 다음의 주소이용 또는 execl 이용 또는 심볼릭 링크이용 등등...

여기서 RET 다음의 주소를 이용해보겠습니다.

 

먼저 orc.c 파일을 복사해줍니다.

이제 컴파일을 한 뒤 디버깅해보겠습니다.

disas를 통해 buffer는 딱 크기만큼 $ebp보다 위에 있다는 것을 알아냈습니다.

그러면 RET까지의 거리는 48로 생각할 수 있겠네요.

 

A*44 B*4 C*100을 인자로 던져 RET주소 다음의 위치를 알아내겠습니다.

0xbffffbf8이네요.

 

payload를 작성해보겠습니다.

"A"*44 + "\xf8\xfb\xff\xbf" + "\x90"*100 + "~~"(ShellCode)

 

성공!

'[▒] 보안 > LOB' 카테고리의 다른 글

level 6  (0) 2020.09.05
level 5  (0) 2020.09.05
level 3  (0) 2020.09.04
level 2  (0) 2020.09.04
level 1  (0) 2020.09.03

BELATED ARTICLES

more