한땀한땀 정성들인 코딩

LOB 문제풀이 일기(11) 본문

보안/LOB

LOB 문제풀이 일기(11)

romance penguin 2021. 3. 27. 17:39
반응형

 

주제

LOB darkknight

 

1. argc는 2이상

2. 함수내의 버퍼에 bof

3. sfp주소의 맨 뒤 1byte를 변경가능

4. 즉 main함수내에서 ebp가 돌아오는 위치가 봐뀜

 

 

Leave

 mov esp, ebp

 pop ebp


Ret

 pop eip

 jmp eip

즉 조작한 ebp+4byte위치가 jmp eip 하게 된다.

스택내의 범위에서 주소를 넣어주고 

주소-4위치를 ebp에 넣고

주소가 쉘코드를 가리키면됨

어느 주소로든 점프가 가능하므로 쉘코드를 넣을곳은 많다.

1. buffer변수

2. argv[0] 혹은 argv[2] 이상

3. 공유라이브러리

 

버퍼는 작아서 nop를 타기에 적합하지 않으므로 

argv[2]에 쉘코드를 넣어주겠다.

 

일단 대략적인 argv[2]주소와 char buffer[40]시작 주소를 파악하여야 한다.

 

argv[2] 0xbf ff ff cb

char 0xbffffa94

call하고 돌아올때 복귀 주소가 0xbffffac4 <- 굳이 확인할 필요는 없었다.

페이로드

더미(4)+argv2주소(4)+더미(32)+sfp조작(1)+nop+쉘코드



몇번 안돌고 따 냈다.

처음에 range(0,256)을 줬더니 알 수 없는 오류가 나서;; 아마 엉뚱한 주소로 가서 명령어를 실행시켜서 그러는 것 같다.

범위를 range(128,256)으로 줄여줬더니 손쉽게 따냈다.

 

반응형

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

LOB 문제풀이 일기(10)  (0) 2021.03.27
LOB 문제풀이 일기(9)  (0) 2021.03.27
LOB 문제풀이 일기(8)  (0) 2021.03.27
LOB 문제풀이 일기(7)  (0) 2021.03.27
LOB 문제풀이 일기(6)  (0) 2021.03.27