php伪协议是什么(漏洞梳理篇之php伪协议)
PHP偽協議
首先,我們需要先了解一下我們在CTF中可能遇到的文件包含函數:
1、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(比較常見)
PHP偽協議事實上就是支持的協議與封裝協議(12種)
a. file:// — 訪問本地文件系統
b. http:// — 訪問 HTTP(s) 網址
c. ftp:// — 訪問 FTP(s) URLs
d. php:// — 訪問各個輸入/輸出流(I/O streams)
e. zlib:// — 壓縮流
f. data:// — 數據(RFC 2397)
g. glob:// — 查找匹配的文件路徑模式
h. phar:// — PHP 歸檔
i. ssh2:// — Secure Shell 2
j. rar:// — RAR
k. ogg:// — 音頻流
l. expect:// — 處理交互式的流
是否需要截斷
1、不需要截斷
<?php include($_GET['file']) ?>
登錄后復制
2、需要截斷 (在php版本<=5.2中進行測試是可以使用%00截斷的)
<?php include($_GET['file'].'.php') ?>
登錄后復制
file://協議
file://協議在雙off的情況下也是可以正常使用的。
allow_url_fopen :off/on
allow_url_include:off/on
file://用于訪問本地文件系統,在CTF中常用來讀取本地文件。
使用方法:file://文件的絕對路徑和文件名。
Eg:http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt
php://協議
php://協議的使用條件:
1. 不需要開啟allow_url_fopen
2. php://input、 php://stdin、 php://memory 和 php://temp 需要開啟allow_url_include。
php://filter 用于讀取源碼且在雙off的情況下也可以正常使用
allow_url_fopen :off/on (使用條件)
allow_url_include:off/on
Eg: 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
Eg:http://127.0.0.1/cmd.php?file=php://input [POST DATA] <?php phpinfo()?>
以上內容僅供參考!
推薦教程:PHP視頻教程
以上就是php偽協議是什么的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的php伪协议是什么(漏洞梳理篇之php伪协议)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python删除字符_Python之删除
- 下一篇: 电脑显卡怎么看好坏