ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web Hacking] picoCTF WebShell n0s4n1ty 1
    Hacking/CTF 문제 풀이 2025. 5. 23. 02:11
    728x90
    반응형

    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
    반응형
Designed by Tistory.