본문 바로가기
Wargame/LOB

cobolt -> goblin

by Anatis 2020. 9. 6.

ls명령어로 확인해보면 goblin과 goblin.c가 있다.

소스코드를 보면 buffer는 16byte고 gets() 함수가 있다.

gets() 함수는 문자열을 입력받는 함수인데 문자열의 길이를 검증하지 않기 때문에

Buffer overflow 취약점이 발생한다.

 

이전 레벨과 별다를건 없지만 입력을 표준 입력으로 받는다는 차이점이 있다.

 

NOP Sled를 이용하여 쉘 코드를 환경변수에 등록한다.

환경변수에 등록된 쉘 코드의 주소를 C언어 코드로 작성하여 가져온다.

이제 주소를 알았으니 Python으로 exploit code를 작성하자.

 

Payload

buffer(16) + SFP(4) + RET(4)

 

다음 레벨인 goblin의 쉘이 실행되었다.

 

cobolt -> goblin

password : hackers proof

'Wargame > LOB' 카테고리의 다른 글

wolfman -> darkelf  (0) 2020.09.07
orc -> wolfman  (0) 2020.09.06
goblin -> orc  (0) 2020.09.06
gremlin -> cobolt  (0) 2020.09.06
gate -> gremlin  (0) 2020.08.24

댓글