WEB渗透之文件包含漏洞
1.文件包含
1.1原理:
服务器执行的php文件中可能包含木马文件或者恶意代码
1.2漏洞产生原因
web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件
静态包含使用include指令,动态包含使用include动态标签
静态包含(include指令):<%@include file="需要包含的文件地址("%>
动态包含(include动态标签):
静态文件和动态文件的区别_LifeAnLearn的博客-CSDN博客_静态文件和动态文件的区别
客户端可以控制动态变量(即这个变量用前端用户传进的)
1.3可能出现的情况
本地文件包含漏洞:被包含文件在服务器本地,在这种情况下,攻击者会包含一些固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的漏洞。
服务器中的静态资源和动态资源_Pr Young的博客-CSDN博客-------->这个就说明了被包含的文件既可能是动态文件也可能是静态文件。
远程文件包含漏洞:能够通过url地址对远程的文件进行包含(这里应该是指执行url地址中所包含的远程文件)
要求:必须要开启allow_url_include和allow_url_fopen,即两者参数均显示为on
在php.ini中,allow_url_fopen一直默认为on,而allow_url_include从php5.2之后一直默认为off
1.4文件包含函数
include(文件地址) //找不到被包含文件时发出警告,但依旧会继续执行程序include_once() //文件被重复包含时只包含一次require() //找不到包含文件时补鞥继续执行require_once()
2.php文件包含
2.1php文件包含的特点
无视文件后缀(类型),即只要满足为PHP语言,则就会执行
2.2文件包含漏洞
攻击者思路:
通过访问并不存在的文件,得到相关的传递路径
读取敏感文件
包含的文件为系统配置文件,从而得到相关的敏感信息
本地包含配合文件上传(这里的部分知识在文件上传里面)
即包含的文件
远程包含shell
allow_url_include开启
包含Apache日志文件
找到Apache路径,利用包含漏洞包含日志文件获取Webshell。(很多时候,web服务器会将请求写到日志文件中,可获得客户端地址,访问者标识,访问者的验证名字,请求时间,请求类型,状态码以及发送给客户端的字节数)
包含SSH日志文件
把用户名写成"phpinfo",ssh的登录日志就会把此次的登录行为记录到日志中
包含session文件
session:存在服务端,一般用于跟踪会话
PHP封装伪协议
PHP伪协议(封装协议/内置协议)_吃_早餐的博客-CSDN博客_php封装协议
实战练习题
第一题
打开题目得到:
需要了解的前置知识: PHP highlight_file()用法及代码示例 - 纯净天空
来源地址:https://blog.csdn.net/qq_65395016/article/details/127432622
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341