일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- War Game
- privilege escalation
- BANDiT
- php login page
- php 로그인 페이지 만들기
- Leviathan
- OS Command Injection
- Reconnaissance
- php
- THM
- Recon
- FTZ
- php 파일 업로드하기
- active recon
- php To Do List
- Cryptography
- tryhackme
- Cookie
- Authentication
- over the wire
- file upload
- Server Side Request Forgery
- php file upload
- 파일 업로드 취약점
- SQLi
- access control
- sql injection
- overthewire
- ssrf
- active reconnaissance
- Today
- Total
R's Hacking Daily Log
Leviathan2 -> Leviathan3 본문
Connection : ssh leviathan2@leviathan.labs.overthewire.org -p 2223
username : leviathan2
Kali linux - Terminal
현재 경로에 들어있는 printfile이라는 파일을 실행해본다.
해당 파일은 file printer라는 데, Usage에 사용법을 출력해주고 있다.
파일을 하나 만들어서 printfile을 실행해보니, 정말 말 그대로 파일의 내용을 출력하고 있다.
흠. 그렇다면 password가 들어있는 파일을 출력하게 해볼까했지만,
/etc/leviathan_pass/leviathan3는 Permission denied라고 출력된다.
차근차근 다시 생각해보자.. 일단 권한을 확인해보면, printfile의 owner가 leviathan3로 되어있다.
x에 해당하는 자리에 s로 표시되는 걸 보면, 해당 파일이 실행될 때 root가 아니라 leviathan3 권한으로 실행되는 듯하다.
다른 힌트가 있을까 싶어, ltrace command를 사용해봤다.
중간에 눈에 띄는 "/bin/cat"
snprintf() = overflow를 방지하며 buffer size에 알맞게 지정된 서식의 문자열을 저장하는 함수이다.
printfile에서는 "/bin/cat %s"가 지정된 서식이고 %s자리에는 사용자가 입력한 파일의 이름이 들어간다.
이후 system()로 해당 문자열의 내용이 실행되는 것.
그렇다면, " ; "을 사용해서 다른 명령어를 이어서 실행되게 한다면 문제를 풀 수 있을까?-?
바로 실행해봤다.
따옴표로 묶어서 처리해줘야 중간에 세미콜론을 붙인 형태로 파일 이름을 지정할 수 있다.
결과로는 "No such file or directory"라고 나오는데.. user부분을 보니..?!
leviathan2에서 leviathan3으로 바뀐 것을 볼 수 있다.
" ;bash "로 leviathan3 권한으로 printfile이 실행되고 있을 때 shell을 얻었나보다.
'OverTheWire > Leviathan' 카테고리의 다른 글
Leviathan5 -> Leviathan6 (0) | 2023.01.07 |
---|---|
Leviathan4 -> Leviathan5 (0) | 2023.01.07 |
Leviathan3 -> Leviathan4 (0) | 2023.01.06 |
Leviathan1 -> Leviathan2 (0) | 2023.01.05 |
Leviathan0 -> Leviathan1 (0) | 2023.01.05 |