일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- active recon
- Server Side Request Forgery
- ssrf
- over the wire
- php file upload
- access control
- php 로그인 페이지 만들기
- Reconnaissance
- privilege escalation
- 파일 업로드 취약점
- sql injection
- War Game
- php login page
- php To Do List
- THM
- BANDiT
- Cryptography
- SQLi
- active reconnaissance
- Leviathan
- FTZ
- Cookie
- php 파일 업로드하기
- tryhackme
- Recon
- overthewire
- OS Command Injection
- php
- Authentication
- file upload
- Today
- Total
R's Hacking Daily Log
FTZ Hacker school - level 3 본문
[ cat level3 hint ] :: level3의 hint를 읽어보니 "autodig source"가 나온다.
내용을 보니 결과적으로는 system()이 cmd를 실행하는 데 cmd 내용은 사용자의 입력값을 사용하는 듯하다.
dig @input_string version.bind chaos txt
strcpy() & strcat()으로 이와 같은 내용의 cmd를 만드는 것
그렇다면 그게 뭐든 입력한 값을 cmd에 포함해서 system()을 실행시킨다는 거니까
my-pass를 포함시킨 내용을 autodig로 실행시키면 될 거 같다.
[ check setuid file ] :: level4로 setuit가 설정된 파일 중 "/bin/autodig" file이 보인다.
hint에서 본 autodig source가 이 실행 파일 내용을 말하는 것 같다.
[ execute /bin/autodig ] :: /bin/autodig를 실행해 level4의 password를 얻어보자.
/bin/autodig 뒤에 cmd에 포함될 입력값을 쓰면 되는 데 " "로 묶어서 my-pass를 넣어줬다.
" "으로 묶는 이유는 hello부터 my-pass를 하나의 덩어리로 가져가도록 하기 위함이고
이 과정은 hello 뒤에 my-pass를 이어 붙이기 위해 쓴 " ; "에 의해 command가 끊기지 않게 하기 위함이다.
hello;my-pass가 실행되면 사실 hello가 사용된 dig @hello~ 가 실행되고 이어서 my-pass가 실행되는 것.
" "으로 묶어주지 않으면 hello를 입력으로 하는 /bin/autodig가 실행되고 나서 (level 4 권한)
level3 권한 상태의 command line에서 my-pass가 실행된다.
my-pass를 level4 권한 상태에서 실행해서 password를 얻어야 하는 것이기 때문에 " "를 이용해
/bin/autodig 파일 실행 중 my-pass가 적용되게 하는 것이다.
[ get password ] :: 실행결과를 보면 level4의 password가 성공적으로 출력된 걸 볼 수 있다.
! level4 password = suck my brain
'FTZ' 카테고리의 다른 글
FTZ Hacker school - level6 (0) | 2023.03.20 |
---|---|
FTZ Hacker school - level 5 (0) | 2023.03.17 |
FTZ Hacker school - level 4 (0) | 2023.03.17 |
FTZ Hacker school - level 2 (0) | 2023.03.17 |
FTZ Hacker school - level 1 (0) | 2023.03.17 |