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

文件包含漏洞--pyload

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

一.PHP伪协议利用

php://协议

php://filter :用于在读取作用和写入文件时进行过滤和转换操作。

 作用1:利用base64编码过滤器读取源码

通常利用文件包含执行php://filter伪协议读取的源码会被服务器执行从而不会显示,因此需要使用特殊操作读取源码。

利用php://filter 的读取源码的基本语法如下:读取源码以base64编码格式输出

php://filter/read=convert.base64-encode/resource=文件路径

演示案例:

<?php
$a = $_GET["a"];
include('flag.php');
include($a);

 利用php://filter 以base64编码方式读取的源码:

 用base64解码后获得 flag.php源码完整信息

 作用2-(1):利用base64解码码绕过防御代码

利用php://filter 的base64方法解码问价内容基本语法如下:

php://filter/write=convert.base64-decode/resource=文件路径

一些防御代码为了阻止webshell代码被执行通常会在传递的参数前添加一些代码。

演示案例:

<?php
$content = '<?php exit; ?>';
$content .=$_GET['txt'];
file_put_contents($_GET['filename'],$content);
?>

尝试通过URL参数上传webshell代码到文件webshell.php中

 成功上传后,webshell.php文件内容:

 即使webshell成功上传,但是前面多出的防御代码会破坏webshell结构使其无法执行。这个防御代码十分常见,通常出现在缓存或配置文件等地方,防止用户直接访问文件。那么,如何绕过?

 php://filter伪协议支持多种方式读取和转换文件,其中包括以base64解码的方式读取文件。

当我们尝试利用php://filter伪协议将文件以base64方式解码再读取时,防御代码<?php exit; ?>会被当做base64编码进行解码,而<?php exit; ?>是php代码而非base64编码,<?php exit; ?>因为无法正常解码会被当作乱码写入文件,乱码不会被执行,就不会影响webshell的执行。

  成功上传后,webshell.php文件内容:

 执行1一下webshell.php文件试试--->成功执行

 作用2-(2):利用strip_tags()函数去除防御代码

strip_tags()会剥离字符串中的HTML和PHP标签,我们可以将webshell进行base64编码后上传,这样strip_tags()函数会帮助我们去除防御代码,同时联合base64编码过滤器将webshell解码

 


总结

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 生物学家做不出 AlphaGO,但也在创造生命……
  • 学习笔记-系统框图传递函数公式推导
  • pinia安装及简介
  • AI学习记录 -使用react开发一个网页,对接chatgpt接口,附带一些英语的学习prompt
  • 在vue中优雅地异步引入(懒加载)腾讯地图API
  • tinyxml2的入门教程
  • 【进阶篇-Day12:JAVA中stream流、File类的介绍】
  • python每日学习:numpy库的用法(上)
  • .net 连接达梦数据库开发环境部署
  • 线性代数重要知识点和理论(下)
  • SpringBoot-21 SpringBoot微服务的发布与部署(3种方式)
  • photoshop学习笔记——移动工具
  • ROS参数服务器增删改查实操Python
  • 网络安全常见错误及解决办法(更新中)
  • 数据结构——单链表OJ题(下)
  • Apache Spark Streaming 使用实例
  • egg(89)--egg之redis的发布和订阅
  • express如何解决request entity too large问题
  • JavaScript 基本功--面试宝典
  • JavaScript新鲜事·第5期
  • java多线程
  • mongo索引构建
  • Nodejs和JavaWeb协助开发
  • scrapy学习之路4(itemloder的使用)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • win10下安装mysql5.7
  • 初识 webpack
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 浅谈web中前端模板引擎的使用
  • 删除表内多余的重复数据
  • 深度解析利用ES6进行Promise封装总结
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • k8s使用glusterfs实现动态持久化存储
  • ​​​【收录 Hello 算法】9.4 小结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ### RabbitMQ五种工作模式:
  • #define、const、typedef的差别
  • (1)svelte 教程:hello world
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (编译到47%失败)to be deleted
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .Net 4.0并行库实用性演练
  • .NET CORE Aws S3 使用
  • .NET Core 项目指定SDK版本
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?