[SUCTF2019] 체크인 ((.user.ini 및 exif_imagetype) 함수를 우회)

0x01로 제목 설명

페이지 웹을 열고 것은 업로드 된 것으로 확인
그림 삽입 설명 여기

1, 우리는 단지 PHP 파일 업로드하려고
그림 삽입 설명 여기
잘못된 이름 접미사


2, 우리는 사진을 업로드하려고

그림 삽입 설명 여기
다음은 추측 할 수는 exif_imagetype()심판의 기능이 잘 될 수있는 파일 헤더에 사진 헤더를 추가 우회, 사진 아니며, 예를 들어, gif헤더 GIF89a


3, 우리는 사진에 추가하는 php코드입니다.
그림 삽입 설명 여기
사진을 포함 할 수있는 <?, 우리가 할 수있는 다른 문으로 우회

<script language=”php”>xxx</script>
<% xxx %>
<? xxx ?>


0x02로 아이디어를 정리

1 개 파일은 <? A를 업로드 할 수 없습니다
2, 업로드 된 파일이 있어야합니다 사진 헤더

해결 방법은, 우리가 처음 PHP 코드로 해결 이미지에 사용되는 .user.ini 이동을 업로드 할 수 있습니다, 당신은 제한을 우회의 목적을 달성 할 수있다.

사진을 업로드 a.gif코드가 포함 된
GIF89a
<script language='php'>system('cat /flag');</script>
업로드 .user.ini코드
GIF89a
auto_prepend_file=a.gif

auto_prepend_file=a.gif현재 폴더가 포함됩니다에이 문장은 모든 PHP 파일에 해당a.gif


0x03으로 응답

업로드 한 후이 개 파일을 보여
그림 삽입 설명 여기우리의 업로드 디렉토리에 직접 액세스 할 index.php
그림 삽입 설명 여기
항목을 사람들이 의도적으로 업로드 디렉토리 설정에 액세스 할 수 있습니다 php그것은 내가 코드를 업로드 사진을 포함 할 수 있도록, 파일, 그러나 실제로 경우가 드물다.



전투 사용의를 0x04 .user.ini 가능성

상술 한 바와 같이 .user.ini다음 조건을 이용하여 :

  • 서버 스크립트 언어 PHP
  • 서버는 CGI / FastCGI를 모드를 사용합니다
  • PHP 파일 업로드 디렉토리는 실행 아래를하는

이러한 관점에서 .user.ini.htaccess넓은에 응용 프로그램의 범위, 어쨌든 .htaccess에만 사용할 수 있습니다Apache

그러나 우리가 느끼는 것입니다 자세히 조사,이 파일 업로드도 더 요구하고 요구한다 "업로드 디렉토리는 실행 파일의 PHP를하는"더 천재 개발자가 홈 디렉토리에있는 파일이나 업로드하지 않습니다이 있어야 php업로드 할 폴더에있는 파일을 .

그러나, 방법하지 않습니다 우리는 기적이 될 수 있습니다 사용의 실제 상황에 따라 다른 취약점과 협력하는 경우, 나는이 충족 몇 년 전에 CMS업로드 경로가 때 감지되지 ../따라서 결과 파일을 임의의 디렉토리에 업로드 할 수 있으며,이 경우에 우리의 그것은 가능성 사용할 수 있습니다.user.ini

또한, .user.ini후면 도어에 숨겨진의 사용은 남겨 우리의 디렉토리 PHP 파일의 존재 방법의 좋은 사용,해야 .user.ini다시 문을 숨기고의 목적을 달성하기 위해 그래서, 우리의 말 사진.

게시 47 개 원래 기사 · 원 찬양 2 · 조회수 (3140)

추천

출처blog.csdn.net/a3320315/article/details/102923965