41번 문제를 클릭하면 위와 같은 화면이 나온다.
view-source로 소스 코드를 보자.
파일이 업로드 되면서, flag 값이 업로드 된 파일에 써지는 것으로 보인다.
우리는 그럼 파일이 업로드 되는 경로를 알아내야 한다.
파일을 선택하지 않고 upload를 눌러보았다.
그랬더니 /var/www/html/challenge/web-19/index.php에 있는 21번째 줄에서 filename이 비어 있다는 에러 메시지를 출력했다.
이때 이 에러 메시지에서는 우리가 경로가 무엇인지 알 방법이 없다.
다른 에러 메시지를 출력하여, 경로를 찾아내야 한다.
보통 큰 파일의 경우, 업로드가 되지 않는 경우도 존재하니 kali-linux 가상머신 파일을 업로드 해보았다.
이 정도 파일 가지고는 안 되는 것 같다.
업로드가 잘 진행되고 있다! . .
또 어떤 파일 업로드 에러가 있는지 알아보았다.
파일명의 길이가 260자로 제한되어 있다는 글을 발견하였다.
260자가 넘는 파일명을 보내기 위해 Burp Suite를 설치해서 사용하자.
Burp Suite 다운로드 링크는 다음과 같다.
https://portswigger.net/burp/releases/professional-community-2021-5-1?requestededition=community
Professional / Community 2021.5.1
This release includes several improvements to Intruder, one of which allows you to save Intruder attacks to project files. The release also includes other minor Burp Suite improvements. Persistable In
portswigger.net
Burp Suite의 Proxy 기능을 이용하여,
다음과 같이 filename 부분을 바꿔주고 forward를 통해 실행하였다.
그랬더니 위와 같은 메시지가 뜨면서, 파일 경로가 4b0e87fef7b5e8ba83894970c9806042e5d6ec9a임을 알 수 있었다.
flag값을 알아내기 위해서 임의로 flag.docx라는 파일을 하나 업로드하였다.
그런 다음 4b0e87fef7b5e8ba83894970c9806042e5d6ec9a/flag에 접속하였더니 플래그가 떴다!
플래그를 입력했더니 문제가 풀렸다!
'Wargame > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr old 46번 문제 풀이 (0) | 2021.05.25 |
---|---|
Webhacking.kr old 43번 문제 풀이 (0) | 2021.05.19 |
Webhacking.kr old 42번 문제 풀이 (0) | 2021.05.15 |
Webhacking.kr old 36번 문제 풀이 (0) | 2021.05.15 |
Webhacking.kr old 12번 문제 풀이 (0) | 2021.05.15 |