Lab: Web shell upload via Content-Type restriction bypass 문제 풀이

아래는 해당 문제 풀이 사이트에 들어가 이미지 파일을 올려보았더니 페이지에 이미지가 보이고 있다. 원하는 파일을 올릴 수 만 있다면 웹 쉘을 획득할 수 있을 것이다.

파일 전송한 페이지를 보니 아래와 같이 content-type이 image/png 라고 적혀 있다 이는 파일의 형식을 포함하여 서버로 전달하는 것을 볼 수 있다. 이는 이미지 파일의 경우 자신이 무슨종류의 파일인지 포함하는 데이터를 가지고 있기 때문에 이를 클라이언트에서 읽어서 같이 서버로 올린 것으로 파악된다.
그렇기 때문에 php 파일이 업로드가 막힌 경우 content -type을 변경하여 서버로 올리면 되는 것이다.

이제 홈으로 가면 이미지불러오는 코드로 해당 경로에서 이미지 파일을 불러오는 것을 알 수 있다.
이제 경로만 알아내면 되는데 어디로 저장되는지를 파악해야한다. 이를 위해 해당 이미지를 불러오는 사이트에서 경로를 파악해야한다.


위 이미지와 아래 이미지는 같은 것으로 위는 아래 코드가 실행된 것이다. 여기서 내가 올린 이미지 파일이 <image 태그를 통해 불러오는데 src에 이 경로가 적혀있다. 이 경로를 적어주기만 하면 이미지 파일을 불러올 것이다.

test1.php 를 업로드하는데 아래에는 해당 파일의 내용이 담겨져 있다. 하지만 contetn-type이 image/png 이기 때문에 서버에 올라가게 될 것이다. 만약 형식이 php 이면 이것이 반려되기 때문에 이처럼 클라이언트 필터링을 파일명만 변경하여 보내먄 통과된다.

이를 Repeater에서 send하기만 하면 답이 나오게 된다.
'Coding > Wargame' 카테고리의 다른 글
| [ Burp suit] File upload 문제4 풀이 (0) | 2022.06.01 |
|---|---|
| [ Burp suit] File upload 문제3 풀이 (0) | 2022.05.31 |
| [ Burp suit] File upload 문제 풀이 (0) | 2022.05.29 |
| [SQL Injection]Error base SQL Injection을 이용한 Database table, column name (0) | 2022.05.25 |
| [SQL Injection] burp suit 문제 풀이 (0) | 2022.05.24 |