Level11
level11 계정으로 접속한 후 hint를 확인해보면 다음과 같습니다.
소스코드만 나와 있는 것으로 보아, attackme의 소스코드 임을 생각해 볼 수 있습니다. FSB 와 BOF취약점이 존재하는데, BOF취약점을 이용해 해결하겠습니다.
RTL ( Return To Libc ) 를 시도하기 위해 먼저 libc의 ASLR 유무를 확인해 보았습니다.
ldd명령어를 이용하여 확인해보니 ASLR은 적용되지 않았습니다. 다음으로 gdb를 이용해 스택을 파악해 보았습니다.
그 후, System 함수의 주소와 "/bin/sh"가 위치해 있는 주소를 찾았습니다. attackme프로그램에서는 권한이 없어서 디버깅이 원활히 되지 않습니다. 따라서 따로 파일을 하나 만들어서 system 함수의 주소를 찾았습니다.
그 후, 다음과 같은 코드를 하나 작성하여 "/bin/sh"가 위치한 주소를 찾습니다.
필요한 부분들은 모두 구했으니 공격을 시도할 방식을 도식화하여 나타내면 다음과 같습니다.
완성시킨 Payload 는 다음과 같습니다.
`perl -e ‘print “A”x268,”\xc0\xf2\x03\x42”,”AAAA”,”\xa4\x73\x12\x42”’`
Payload를 입력해보면 다음과 같이 level12의 Shell이 실행되어지고, level12의 Password를 얻을 수 있습니다.
No comments:
Post a Comment