문제 풀이
1. CODE
2. Assembly
3. Solution
이용자의 input 길이 미계산 함수 존재 -> stack 내 arguments, return address 변조 가능
인자 값을 0xcafebabe 로 변경 or Return address system() 주소로 변경 가능, -> 인자 변경을 통한 쉘 획득으로 결정
1) Checking an argument's address
CALL 함수 실행 전 인자 삽입, CALL 함수 실행 시 Return Address 저장
=0xffffd300
2) Checking an address of user's input
=0xffffd2c0
인자 값 변경에는 성공했으나, shell 실행 값 확인 불가
python을 이용하여 script input하기 위해 gets함수와 bash와 관련한 내용 확인 필요.-> 구글링
shell 획득 후, 표준 입력 대기가 종료되므로 파이프가 없어진다고한다. (pwnable.kr 9000에 값 전달 X)-> 지속적인 표준입력받는 상태 유지 필요 -> shell에 cat을 치면 cat은 표준입력을 지속적으로 받고 결과를 출력 -> ; cat 명령어 추가한다. 추가를 통해 파이프를 유지하고 획득한 쉘의 내용을 받는다.
'HACKING_GAME > SYSTEM' 카테고리의 다른 글
LOB#1 gate (0) | 2020.07.19 |
---|---|
PWNABLE#7 input (0) | 2020.05.14 |
LOB#6 check length of argv[1] + egghunter + bufferhunter (wolfman -> darkelf) (0) | 2020.05.10 |
LOB#4 egghunter (goblin -> orc) (0) | 2020.04.26 |
LOB#2 small buffer (gremlin -> cobolt) (0) | 2020.04.26 |