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
다시 문을 숨기고의 목적을 달성하기 위해 그래서, 우리의 말 사진.