한땀한땀 정성들인 코딩
LOB 문제풀이 일기(11) 본문
반응형
주제 |
LOB darkknight |
1. argc는 2이상
2. 함수내의 버퍼에 bof
3. sfp주소의 맨 뒤 1byte를 변경가능
4. 즉 main함수내에서 ebp가 돌아오는 위치가 봐뀜
Leave mov esp, ebp pop ebp Ret pop eip jmp eip |
즉 조작한 ebp+4byte위치가 jmp eip 하게 된다.
스택내의 범위에서 주소를 넣어주고
주소-4위치를 ebp에 넣고
주소가 쉘코드를 가리키면됨
어느 주소로든 점프가 가능하므로 쉘코드를 넣을곳은 많다.
1. buffer변수
2. argv[0] 혹은 argv[2] 이상
3. 공유라이브러리
버퍼는 작아서 nop를 타기에 적합하지 않으므로
argv[2]에 쉘코드를 넣어주겠다.
일단 대략적인 argv[2]주소와 char buffer[40]시작 주소를 파악하여야 한다.
argv[2] 0xbf ff ff cb
char 0xbffffa94
call하고 돌아올때 복귀 주소가 0xbffffac4 <- 굳이 확인할 필요는 없었다.
페이로드
더미(4)+argv2주소(4)+더미(32)+sfp조작(1)+nop+쉘코드
몇번 안돌고 따 냈다.
처음에 range(0,256)을 줬더니 알 수 없는 오류가 나서;; 아마 엉뚱한 주소로 가서 명령어를 실행시켜서 그러는 것 같다.
범위를 range(128,256)으로 줄여줬더니 손쉽게 따냈다.
반응형
'보안 > LOB' 카테고리의 다른 글
LOB 문제풀이 일기(10) (0) | 2021.03.27 |
---|---|
LOB 문제풀이 일기(9) (0) | 2021.03.27 |
LOB 문제풀이 일기(8) (0) | 2021.03.27 |
LOB 문제풀이 일기(7) (0) | 2021.03.27 |
LOB 문제풀이 일기(6) (0) | 2021.03.27 |