article thumbnail image
Published 2021. 2. 9. 16:44

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
복사했습니다!