티스토리 뷰

포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

43번 문제이다.

cat /flag를 실행할 수 있는 웹쉘을 업로드해야 하는 것처럼 보인다.

한번 업로드해보자.

해당 코드는 GET방식으로 파라미터를 입력받아 system() 함수로 연결시킬 수 있는 웹쉘 코드이다.

한번 업로드해보자.

 잘못된 타입이란다.

아무래도 확장자 필터링이 아닐까 싶었다.

하지만 %00, 2중 확장자 등 여러 가지 우회 기법을 사용해봤지만 뚫리지 않았다.

그래서 검색해봤다.

그 결과 burp suite를 사용한 우회 기법을 발견할 수 있었다.

위 사진은 wwwsss.txt 파일을 업로드 과정을 burp suite로 캡처한 사진이다.

우리는 Contet-Type: 부분을 image/jpeg로 변경하여 확장자를 우회할 수 있다.

정상적으로 업로드가 된 것을 볼 수 있다.

하지만 우리가 업로드해야 할 파일은 txt확장자가 아닌 php확장자이기에 해당 과정을 다시 php로 바꾸어 다시 수행해야 하며, 본 포스트에서는 생략하겠다.

업로드 후 하이퍼링크를 눌러주면 이러한 빈 화면을 볼 수 있다.

이제 php의 뒷부분에 cmd파라미터를 이용하여 서버에게 명령어를 날릴 수 있다.

cat /flag를 입력해주자.

정상적으로 flag를 출력받았다.

이제 Auth칸에 입력하여 검증해보자.

아니란다..

하지만 =문자를 보아 base64의 패딩 문자라는 걸 추측할 수 있고 해당 메시지를 디코딩해보자.

뭘 바랐냐고 물어본다.

?????? 안된다.

뭐지

무얼까 생각하던 도중 잘못된 flag를 입력했을 경우 invalid flag가 출력되는데 처음에는 something wrong이 출력되길래

혹시나 해서 새로고침 하였더니 시간이 오래 지나 나의 로그인 세션이 날아가서 생긴 일이었다.

 

문제 해결

시행착오

1. burp suite를 이용하여 확장자 우회를 시도하여도 원래 올린 파일 형식이 txt이면 php 파일로 올라가지 않는다.

   ㄴ 당연한 이야기..

'SQL injection > webhacking' 카테고리의 다른 글

webhacking 45번  (0) 2022.08.09
webhacking 44번  (0) 2022.08.08
webhacking 42번  (0) 2022.08.05
webhacking 41번  (0) 2022.08.03
webhacking 40번  (0) 2022.08.01
댓글