PHP 의사 프로토콜
우선 CTF에서 접할 수 있는 파일 포함 기능을 이해해야 합니다.
1. include
2. require
code> 3. include_once
4. require_once
5. highlight_file
6. show_source
7. 읽기 파일
code> include
2、require
3、include_once
4、require_once
5、highlight_file
6、show_source
7、readfile
8、file_get_contents
9、fopen
10、file
file_get_contents
9. fopen
10. file
(더 일반적임) PHP 의사 프로토콜은 실제로 지원되는 프로토콜입니다. 캡슐화 프로토콜(12가지 유형) 사용
a.file:// — 로컬 파일 시스템에 액세스 b. http:// — HTTP(s) URL에 액세스 c — FTP에 액세스 URLd.php:// — 개별 입력/출력 스트림에 액세스(I/O 스트림) e.zlib:// — 압축된 스트림 f. 데이터(RFC 2397) g . glob:// — 일치하는 파일 경로 패턴 찾기 i.ssh2:// — RARk. // — 오디오 스트림l.exp:// — 대화형 스트림 처리1. 자를 필요가 없습니다
<?php include($_GET['file']) ?>
2. to truncate (php 버전 <=5.2에서 테스트 시 %00 truncation 사용 가능)
<?php include($_GET['file'].'.php') ?>
file:// 프로토콜
file:// 프로토콜은 double off 의 경우에도 정상적으로 사용할 수 있습니다.allow_url_fopen: off/on
allow_url_include: off/on
file://은 로컬 파일 시스템에 액세스하는 데 사용되며 일반적으로 CTF에서 로컬 파일을 읽는 데 사용됩니다.
사용법: file://파일의 절대 경로 및 파일 이름입니다.예: http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt
php://protocol
php:/ /프로토콜 사용 조건:
1.allow_url_fopen
2.php://input, php://stdin, php://memory 및 php://temp를 설정할 필요가 없습니다. .
php://filter는 소스 코드를 읽는 데 사용되며 이중 꺼진 상황에서도 정상적으로 사용할 수 있습니다
allow_url_fopen: off/on (사용 조건)
allow_url_include: off/on
예: http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=index.php
php://input 요청의 원본 데이터만 스트림을 읽고 POST 요청의 데이터를 PHP 코드로 실행합니다.
allow_url_fopen: off/on
allow_url_include: on
예: http://127.0.0.1/cmd.php?file=php://input [POST DATA]
위 내용은 참고용입니다!
추천 튜토리얼:PHP 비디오 튜토리얼
위 내용은 PHP 의사 프로토콜이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!