注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
一、什么是文件包含漏洞
文件包含:就是去其他的php文件读取源码来运行,调用
去除代码的冗余性:
后台的所有的文件,是不是都必须要检测当前用户是不是管理员,可以直接文件包含判断
二、函数解析
文件包含函数:
include
遇到了include就临时调用(出错后继续的执行)
include包含文件是不管文件后缀的,只读取内容,读取出来的东西都会当做php或者html代码执行
include_once
只能包含一次
require
事先读取,整合运行
require_once
先检测之前是否调用过这个php文件,如果调用过就不重复调用
三、文件包含分类
文件包含可以包含任意后缀的东西当做php执行,找到一个文件包含漏洞,上传图片马,这样就可以拿到了webshell
文件包含是个功能 => 任意文件包含才是漏洞
文件包含:
本地文件包含:包含自己主机上的文件 (LFI) L就是本地 Local
远程文件包含:可以远程读取文件直接包含 (RFI) R远程 Remote
知识点:远程文件包含默认不开启,它需要修改配置才可以 allow_url_include=on
※※※ 本地文件包含中是不允许出现问号的
隐藏的小技巧:可以让在不开启配置文件的情况下使用SMB法让本地文件远程包含
cmd也会偷懒,进入一个文件夹再退出,其实不会真的去执行进入,也不会报错,哪怕文件夹不存在
PHPMYADMIN拿webshell(爆破进入phpmyadmin页面)
1.导出法:into dumpfile 默认情况下不让导出
2.日志法:设置mysql的日志文件和地址,然后运行sql语句,语句里面有一句话木马
3.phpmyadmin漏洞法(文件包含漏洞)
GET传参会默认解码一次
多传参使用&符号
file_put_contents('<?php eval($_REQUEST[8]);?>','C:1.php')
运行eval的时候最后要带分号表示结束