ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Renewal] webhacking.kr old-37 [250]
    $ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:42

     

    문제를 확인해 보면 엄청난 소스코드가 존재 합니다.

    일단 길어요!! 간략히 설명을 하자면!

     

    파일업로드관련 문제를 다루고 있습니다.

    ./tmp/tmp-{$time} 파일명의 파일에 127.0.0.1 을 write 합니다.

     

    그리고 업로드한 파일의 이름을 replace를 하고 결과가 참이면 ./tmp/tmp-{$time} 에 자신의 IP를 덮어 씌우는 작업을 합니다.

     

    그리고 ./tmp/tmp-{$time} 에서 file_get_contents함수를 이용해서 파일 내의 데이터를 가져오게 됩니다.

    file_get_contents 함수로 가져온 데이터에 있는 IP주소로 FLAG를 전달하는데 7777번 포트를 이용해서 전달하게 됩니다.

    여기 까지가 코드에 대한 내용입니다.

     

    이제 해야할 일은 총 3가지 입니다.

    1. nc -lvp 를 이용해서 7777번 포트를 열어줘야한다.

    2. 해당 웹페이지에 파일 업로드

    3. 파일업로드를 통해 올라간 파일에 접근해서 flag 받기

     

    하지만 고려해야 할 점은 파일명에서 $time은 time() 함수를 이용해서 현재 시간을 받아 옵니다.

    시간에 민감하기 때문에 저는 nc -lvp 7777로 포트를 열어주고 파이썬 코드 2개를 작성했습니다.

    하나는 파일 업로드 하는 소스코드, 다른 하나는 업로드된 파일에 접근하는 소스코드를 작성해 보겠습니다.

     

    아래의 코드는 웹페이지에 time값으로 파일업로드하는 소스코드입니다. 

    가린 부분인 f.write()함수의 인자값으로 nc를 열어둔 서버의 IP를 입력하시면됩니다!

     

    아래의 코드는 업로드된 파일에 접근하는 소스코드입니다.

     

    for문으로 10개를 넣어준이유는 time값으로 파일을 제작하기 때문에 시간차를 생각해서 10개를 생성했습니다.

     

    위 순서대로 실행을 하면 nc에 flag가 넘어와 있습니다.

     

    댓글

Designed by Tistory.