해당문제는 스택프레임포인터 오버플로우문제인것 같다. 보면 provlem_child에서 인자를 하나 더 받기에 sfp를 조작할 수 있고, 조작된 sfp는 leave를 할때 ebp를 다른 곳으로 튀게 만들어 쉘을 딸 수 있을 듯 하다.

buf 시작주소를 확인해주고

쉘코드 넣고 잘 들어간거 확인하고,

했는데 안되서 core을 분석했다.

주소가 다르게 들어가있다...;;

해결..ㅎ

'war game > LOB' 카테고리의 다른 글

LOB-level14(RTL2, only execve)  (0) 2019.07.02
LOB-level13(RTL1)  (0) 2019.07.02
LOB-level11(stack destroyer)  (0) 2019.06.30
LOB-level10(argv hunter)  (0) 2019.06.30
LOB-level9(check 0xbfff)  (0) 2019.06.29

.....????? 이번에는 스택을 통째로 날린다... (정확히는 bfffffff부터 버퍼 시작 주소까지...)

음...공유라이브러리를 이용해보자..ㅎ

이름이 쉘코드인 공유라이브러리 파일이 만들어졌다.

export LD_PRELOAD = 로 공유라이브러리를 등록하고,(절대경로로 입력하는거 주의! "/tmp/" 넣기)

잘 들어간거 확인하고

쉘코드 위치도 찾고,

깔끔하게 풀렸다.

'war game > LOB' 카테고리의 다른 글

LOB-level13(RTL1)  (0) 2019.07.02
LOB-level12(sfp)  (0) 2019.07.02
LOB-level10(argv hunter)  (0) 2019.06.30
LOB-level9(check 0xbfff)  (0) 2019.06.29
LOB-level8(check argc)  (0) 2019.06.28

이번 문제는 더 황당하다. argv를 초기화 해버리다니..;; 해결방법을 고민하다가 argv[0]인자를 따로 저장한다는 것을 알았다.

argv인자가 저장되는 부분

실행파일 이름이 저장되는 부분인것 같다.

주소 정확하게 찾고,

진행을 더 시켜봤지만 argv인자만 지워지고 실행파일명은 지워지지 않는다!

쉘코드 작성해서 쓰면 끝

사실 오류가 계속나서 너무 오래 풀었다.

ln -sf로 심볼릭 링크를 걸어주는게 더 좋은거 같다.(길이제한이 없는듯...)

심볼릭링크 뒤에 nop을 꼭 넣어줘야되는 것 같다....

'war game > LOB' 카테고리의 다른 글

LOB-level12(sfp)  (0) 2019.07.02
LOB-level11(stack destroyer)  (0) 2019.06.30
LOB-level9(check 0xbfff)  (0) 2019.06.29
LOB-level8(check argc)  (0) 2019.06.28
LOB-level7(check argv[0])  (0) 2019.06.28

+ Recent posts