本章目的

普及文件包含漏洞的原理以及常规文件包含漏洞

基础概念

文件包含

原理
文件包含漏洞产生的原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。几乎所有的脚本语言都会提供文件包含的功能,但文件包含漏洞在PHPWebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,这是有些语言设计的醉端。在PHP中经常出现文件包含漏洞,但并不意味着其他语言不存在。

利用条件
(1)include等函数通过动态执行变量的方式引入需要包含的文件
(2)用户能控制该动态变量

PHP文件包含

文件包含函数

include():找不到被包含文件时会产生警告(E_WARNING);

include_once():与include()类似,代码已经被包含则不会再次包含

require():找不到被包含的文件时会产生致命错误(E COMPILE ERROR)

require_once():与require()类似,代码已经被包含则不会再次包含

文件包含分类

文件包含漏洞可以分为LFI(Local File Inclusion,本地文件包含)和RFI(Remote File Inclusion,远程文件包含)两种。而区分二者最简单的办法就是通过查看php.ini中是否开启了allow_url _include。如果开启就有可能包含远程文件。远程文件包含需要php.iniallow_url_include=on,allow_url_fopen=On。在php.ini中,allow_url_fopen默认一直是On,

而allow_url_include从php5.2之后就默认为Off。

文件包含漏洞利用

读取敏感文件(win)

http://127.0.0.1/include/03/index.php?page=C:\windows-version.txt

Vindows系统敏感信息:

C:\boot.ini

/查看系统版本

C:\windows\system32\inetsrv\MetaBase.xml

/IS配置文件

C:\windows\repair\sam

/windows初次安装的密码

C:\program Files\mysql\my.ini

/Mysql配置信息

C:\program Files\mysql\data\mysql\user.MYD

//Mysql root

C:\windows\php.ini

/php配置信息

Linux系统敏感信息:

/etc/passwd

/linux用户信息

/usr/local/app/apache2/conf/httpd.conf

/apache2配置文件

/usr/local/app/php5/lib/php.ini

/php配置文件

/etc/httpd/conf/httpd.conf

/apache配置文件

/etc/my.cnf

/Mysql配置文件

包含日志文件
找到Apache路径,利用包含漏洞包含日志文件获取Webshell。
Apache两个日志文件:access.log、error.log
很多时候,web服务器会将请求写入到日志文件中,比如说apache。在用户发起请求时,会
将请求写入access.log,当发生错误时将错误写入error.log。

日志默认路径

Apache

/etc/httpd/logs/access_log/或var/log/httpd/access log

Apache+Windows日志默认路径

XAMPP套件:xampp\apache\logs/access.log

phpStudy套件:phpStudy\Apache\logs/access.log

日志默认路径

IIS

C:WINDOWS\system32\Logfiles

IS7默认日志文件位置

%SystemDrive%\inetpub\logs\LogFiles

Nginx

nginx日志文件在用户安装目录的logs目录下如安装目录为/usr/local/nginx,则日志目录就是在/usr/local/nginx/Iogs里也可通过其配置文件nginx.conf,获取到日志的存在路径(/opt/nginx/logs/access.log)

session简介:cookie存在客户端,session存在服务端,cookie一般用来保存用户的账户密码,session一般用来跟踪会话。
利用场景;
一般存在登陆点位置注册用户

使用PHP封装伪协议
PHP有很多内置URL风格的封装协议,这类协议与fopen()、copy()、file_exists()和filesize()的文件系统函数所提供的功能类似。

文件包含——概念(一)相关推荐

  1. C++ 笔记(32)— 预处理、文件包含include、宏替换define、条件包含ifndef、define

    C/C++预处理器在源代码编译之前对其进行一些文本性质的操作. 它的主要任务包括删除注释 . 插入 #include 指令包含的文件的内容 . 定义和替换由 #defme 指令定义的符号以及确定代码的 ...

  2. 文件包含中过滤了php,文件包含漏洞---php协议

    一.原理 1.概念:在php代码中,总会有一些代码我们会经常用到,这时引入了文件包含函数,可以通过文件包含函数把这些代码文件包含进来,直接使用文件中的代码,这样提高了我们的工作效率. 2.文件包含函数 ...

  3. upload-labs_pass14_pass15_pass16_图片马的制作_结合文件包含漏洞_getimagesize_exif_imagetype

    pass14-环境说明 phpstudy中php版本为7.3.4nts 补充一点:upload-labs这个靶场要想全部通过,必须要 调整环境(phpstudy的环境不行,就自行搭建一个apache和 ...

  4. base64 转文件_PHP伪协议与文件包含

    PHP伪协议与文件包含 PHP伪协议与文件包含 php:// 协议 php://input php://filter data:// 协议 file:// 协议 zip://.bzip2://.zli ...

  5. fopen打开ftp文件_PHP文件包含漏洞利用思路与Bypass总结手册(一)

    作者:Qftm 合天智汇 前言 这个手册主要是记录针对PHP文件包含漏洞的利用思路与Bypass手法的总结. 相关函数 四个函数 php中引发文件包含漏洞的通常主要是以下四个函数: 1.include ...

  6. php本地文件包含 截断,php远程文件包含截断问题

    今天在学习<白帽子讲web安全>一书是,提到一个php远程文件包含漏洞 可以从攻击者服务器中的一个写好的攻击脚本中远程执行命令 服务器中有漏洞的页面代码为: #test.php #erro ...

  7. 文件包含漏洞——实例

    一.文件包含漏洞利用之本地包含配合文件上传包含图片马 原理: 文件上传漏洞在绕过内容检测的时候,会制作图片马上传,但是图片马在上传之后,又不能解析.如果网站同时存在文件包含漏洞,利用文件包含无视后缀名 ...

  8. 文件包含漏洞(完整版)

    *本文作者:山东安云,转载来自FreeBuf.COM 0×01 文件包含简介 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间. ...

  9. LFI(本地文件包含)、RFI(远程文件包含)、PHP封装协议(伪协议)安全问题学习

    友情链接:https://www.cnblogs.com/LittleHann/p/3665062.html 目录 一.文件包含的基本概念 1.要想成功利用文件包含漏洞,需要满足下面的条件 (1)in ...

最新文章

  1. JavScript中的循环
  2. Linux2.6内核 -- 编码风格(3)
  3. query AjaxUpload实现多文件上传功能代码实例教程
  4. intellij运行多个工程
  5. 参数化测试 junit_参数化的JUnit测试
  6. MyEclipse里运行Tomcat后,Console窗口里中文显示乱码
  7. linux能运行英魂之刃吗,英魂之刃需要什么电脑配置
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的线上电器商城
  9. 加密 数字_数字卢布不会具有BTC这样的加密资产的优势
  10. 静态路由实验:Dynagen-Dynamips + WinPcap + SecureCRT
  11. c语言贪吃蛇毕业论文,毕业论文c语言贪吃蛇
  12. 将照片修改成一寸大小
  13. 小米平板可以编程c语言吗,小米平板方便使用吗
  14. 用html制作粒子线条,html5 canvas跟随鼠标粒子线条动画特效
  15. 表白生日祝福和3D表白相册
  16. 校企联合学院分析ERP在家具行业中的应用
  17. java对接webservice服务实现推送
  18. 掌财社:Springboot如何添加支付接口?实例过程详解
  19. Qt中QList用法详解
  20. Vue3+ElementPlus网页端聊天|vue3.0仿微信/QQ界面实例

热门文章

  1. java强引用软引用深刻理解_Java-强引用、软引用、弱引用、虚引用
  2. java高性能阻塞队列,Linux c/c   后台开发组建之:高性能阻塞队列
  3. python输入框_selenium+python 对输入框的输入处理方法
  4. 自动增益(AGC)算法FPGA实现
  5. 异常处理_月隐学python第19课
  6. manjaro双系统 windows_Win10和Manjaro双系统安装记录
  7. linux二重进程,二叉树递归实现与二重指针
  8. tps协议和onvif协议_做监控的你,应该了解的ONVIF协议!
  9. python3编程题_Python3简单面试编程题
  10. python install pip 区别_python conda、pip区别,python 下 faiss 安装