You must upload webshell and cat /flag라는 메세지와 함께 파일을 업로드 할수있다.
대놓고 shell파일을 올려 cat /flag를 실행하고 한다.
php파일로 만들어준다
<?php
system("cat /flag");
?>
올려본다.
wrong type이라는 메세지와 함께 타입이 잘못됫다고 나온다.
burp suit를 이용해 패킷을 잡아보자
Content-Disposition: form-data; name="file"; filename="test.php"
Content-Type: application/octet-stream
패킷을 잡아보면 content-type 부분도 같이 보내고 있다.
content-type에 대한 설명
https://dololak.tistory.com/130
옥텟 스트림은 이름에서처럼 8비트 단위의 바이너리 데이터를 의미합니다.
특별히 표현할 수 있는 프로그램이 존재하지 않는 데이터의 경우 기본값으로 octet-stream을 사용합니다.
Content-Disposition 헤더를 attachment 로 줌으로써 해당 데이터를 수신받은 브라우저가 파일을 저장 또는 다른이름으로 저장 여부를 설정하게 할 수 있습니다.
그러나 모든 데이터에 대해 octet-stream 타입을 남용하는 것은 권장하지 않는다라고 위사이트에서는 말하고 있다.
content-type부분을 필터링 하고있는거 같고 우리가 패킷을 조작할수 있다
Content-Type: 이부분에 아무거나 넣어보자 위에 사이트를 참조하여 넣을수도 있지만 화이트리스트 방식은 아닐거같다. 예상대로 아무값이나 넣어도 업로드 되는것을 알수있다.
이제 업로드한 파일을 실행시켜보면 Flag 값을 얻을수 있다.
flag 값을 복사하여 auth창에 입력하면 성공!
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-45 (0) | 2019.12.06 |
---|---|
webhacking.kr old-44 (0) | 2019.12.05 |
webhacking.kr old-42 (0) | 2019.12.05 |
webhacking.kr old-41 (0) | 2019.12.05 |
webhacking.kr old-40 (0) | 2019.12.03 |
최근댓글