orge의 패스워드를 알아내보자!
darkelf에 로그인하고 ls 명령어로 현재 위치에서 파일 목록을 출력했다. orge.c 파일이 보인다. 이 파일도 출력해보자.
here is changed!라는 주석이 추가됐다. 코드를 보면 argv[0]의 길이가 77이어야 하는 것 같다. 즉 파일을 실행시킬 때 파일명의 길이를 77로 맞춰야 한다.
그 외에는 달라진 점이 없다. 실행 파일명의 길이를 77로 맞추고 지난번처럼 argv[2]를 이용해서 공격해보자.
python으로 파일명의 길이를 77로 맞추고 argv[2]에 \x90를 넣어서 실행시켰다. 아래와 같이 core파일이 생성됐다. core 파일을 열어서 argv[2] 주소를 찾아봤다.
아래쪽에서 \x90이 반복되는 것을 확인했다. 이중에서 임의의 주소를 골라 공격에 사용하면 된다. 나는 \xbffff801을 선택했다.
python으로 실행파일 경로를 77자로 맞추고 ret영역에 덮어씌울 주소로 방금 찾은 argv[2] 주소를 넣었다.
그 결과 성공적으로 셀이 실행됐다.
orge로 가는 패스워드는 timewalker이다.
'Study > System Hacking' 카테고리의 다른 글
[dreamhack] Linux Exploitation & Mitigation Part 2 / ASLR & PLT, GOT Section (0) | 2021.02.12 |
---|---|
[LOB] orge -> troll (0) | 2021.02.09 |
[LOB] wolfman -> darkelf (0) | 2021.02.09 |
[LOB] orc -> wolfman (0) | 2021.02.03 |
[LOB] goblin -> orc (0) | 2021.02.02 |