이제 File Upload 두번째 문제를 풀어보겠습니다.
회원가입을 다시 진행해주고 게시판에 들어갑니다
1편에서 사용했던 webshell.php파일을 그대로 올리려고 하니
php를 업로드할 수 없다고 뜬다.
확장자를 webshell.png.php로 바꿔보았는데도 업로드 되지 않았다.
일단 파일이 어디에 저장되고 다운로드 되는지를 알기 위해서 일반 이미지 파일을 하나 첨부했다
일반 이미지 파일은 잘 올라갔다
파일이 올라갔을 때
png 파일을 올렸으므로 File 시그니쳐가 뭍게 되는데,
이 파일 시그니쳐 맨 끝에 웹 쉘 코드를 그대로 붙여준다.
다운로드를 눌러도 버프 스위트에 반응이 없어서
F12를 눌러 개발자 도구를 살펴봤더니 a 태그에 다운로드 주소가 나와있었다
일단은, 이 위치를 기억해두고
아까 한 줄 웹쉘을 추가해서 보냈던 패킷에서
Repeater로 보내준 다음,
파일의 확장자를 php로 바꿔준다.
그럼 컴퓨터는 파일 시그니쳐를 보면서 php 코드를 실행시키게 될 것이다.
Send를 눌러보니 업로드 될 수 없지만 글 작성에 성공했다는 모순적인 상태창이 뜬다...
일단 이걸 Show response in browser를 눌러 링크를 복사해준다.
아까 기억해뒀던 파일 저장 위치를 복사하고 파일 확장자는 php로 바꿔서 GET 방식으로 cmd=ls 명령어를 날려준다.
그럼 파일의 대부분은 php 코드가 아니므로 웹 페이지가 이상한 글자로 읽어내려주지만,
맨 하단에 php 실행결과가 나오는 것을 볼 수 있다.
그럼 cmd 명령어가 먹히는 것을 확인했으니 cmd=find / -name "flag*"를 날려준다.
그랬더니 아주 결과가 잘 나왔다.
flag.txt의 파일 저장 위치를 획득했다!
그럼 cat 명령어를 통해 flag.txt의 내용을 읽어보자
맨 하단에 flag 값이 나왔고 (정확한 값은 가렸음) 이를 복사해서 넣어주면 CTF를 해결할 수 있다 끝!
'해킹 > 해킹 기법' 카테고리의 다른 글
File Download CTF #2 풀이 (0) | 2023.06.11 |
---|---|
해킹 기법 - Metasploit (0) | 2023.06.06 |
File Upload CTF 풀이 #1 (0) | 2023.06.03 |
[File Upload 공격 정리] 내가 만든 웹사이트를 웹 쉘로 장악하기 (0) | 2023.06.02 |
해킹 기법 - Hash Cracking (0) | 2023.05.30 |