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

小迪安全v2023学习笔记(五十一讲)—— 持续更新中

文章目录

  • 前记
  • WEB攻防——第五十一天
    • 前后台功能&文件下载&文件读取&文件删除&目录遍历&目录穿越
      • 文件安全 - 下载&删除 - 黑白盒
        • 任意文件下载
          • 原理
          • 演示案例一——文件下载
          • 演示案例二——文件读取
        • 任意文件删除
          • 原理
          • 演示案例
      • 目录安全 - 遍历&穿越 - 黑白盒
        • 目录遍历
        • 目录穿越
        • 黑盒分析
        • 白盒分析

前记

  • 今天是学习小迪安全的第五十一天,本节课是PHP文件类安全的最后一讲,主要是关于文件下载文件删除以及目录遍历目录穿越方面的内容,知识点比较散碎
  • 所需要用到的资源放在下面链接,有需要的自取:
    • https://pan.baidu.com/s/1MuQOX9eG_jcxhRJVYCHavQ
    • 提取码:gayd
  • 另外,之前的笔记内容放在上方的专栏中,那么话不多说,让我们开始今天的学习叭!

WEB攻防——第五十一天

前后台功能&文件下载&文件读取&文件删除&目录遍历&目录穿越

文件安全 - 下载&删除 - 黑白盒

任意文件下载
原理
  • 下载 = 读取
  • 常规下载URL:http://www.xiaodi8.com/upload/123.pdf
    • 直连下载,如果访问http://www.xiaodi8.com/upload/1.php,他可能就不是下载文件,而是解析php代码了
  • 可能存在安全URL:http://www.xiaodi8.com/download.php?file=123.pdf
    • 而如果是这种,就说明他是传参进去的,那就已经固定好下载协议了,如果没做过滤这些,他就会去尝试下载其他文件
  • 当下载文件时是通过参数传递的文件名,那就可能存在下载安全
  • 利用:常规下载敏感文件(数据库配置,中间件配置,系统密钥等文件信息
  • 比如Linux下,参考文章:Linux常见的敏感目录 - 楼–楼 - 博客园
/etc/passwd: 这个文件包含了操作系统用户信息。
/etc/shadow: 这个文件包含了操作系统用户的密码hash。
/etc/sudoers: sudoers文件与sudo命令相关,用于控制用户以其他身份执行命令的权限。
/root/.ssh/authorized_keys: 存储了允许通过SSH登录的用户的公钥。
/etc/my.cnf: MySQL数据库的配置文件,包含了数据库服务器的设置。
...
  • 再比如Windows下:【安全知识】——系统敏感文件路径汇总_windows10 安全 敏感文件存放位置-CSDN博客
c:/boot.ini: 查看系统版本
c:/windows/php.ini: php配置信息
c:/windows/my.ini: MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码
c:\mysql\data\mysql\user.MYD: 存储了mysql.user表中的数据库连接密码
c:\windows\repair\sam: 存储了WINDOWS系统初次安装的密码
...
  • 当然很多时候可能并不能成功下载或读取,主要跟主机的策略有关
演示案例一——文件下载
  • 这里用一个国外的网站做演示案例:https://67.202.70.133/files/readfile.php?file=xxx

  • 我们可以通过这个点去下载一些文件,这里我们就尝试下载当前的readfile.php
    在这里插入图片描述

  • 可以看到是能够成功下载的,那我们下载之后看一看源码:
    在这里插入图片描述

  • 这就是下载文件的东西,一般我们都会尝试下载index.php看一看首页这些有没有包含什么配置文件之类,那这里也是尝试下载一下

  • 注意,现在我们的位置是/files/目录,所以需要返回上一层:
    在这里插入图片描述

  • 这里是没有任何过滤的,然后看一看源码:
    在这里插入图片描述

  • 这里呢,它index.php文件中没有暴露配置文件的位置,但是却暴露了框架的类型,可以看到注释中的Joomla.Site

  • 我们可以去搜一下这个是什么:

Joomla 是一个全球知名的内容管理系统(CMS),用于发布和管理Web内容。
它是一个开源项目,使用PHP语言和MySQL数据库开发,支持在Linux、Windows、MacOSX等多种平台上运行
  • 所以我们可以看看它默认的配置文件路径放在什么地方,就放在Home/username/public_html/configuration.php,那这里应该就在根目录下面,尝试访问下载:
    在这里插入图片描述

  • 确实有,成功获取到数据库账号密码信息:
    在这里插入图片描述

演示案例二——文件读取
  • 这里以BP的靶场作为案例,演示一下文件读取和文件下载的一个相似之处吧

  • 靶场地址为: https://portswigger.net/ ,需要登录才能使用
    在这里插入图片描述
    在这里插入图片描述

  • 这里我们随便点击一个图片看看参数结构:
    在这里插入图片描述

  • 比如这张图片他的地址为image?filename=38.jpg,那这里就是通过传参去进行查找图片的,这就可能出现任意文件读取漏洞

  • 我们BP抓包,然后尝试读取其他文件,比如看看有没有index.php文件:
    在这里插入图片描述

  • 会提示没有此文件,他这里输入../也不会报错或提示权限不够,那我们就直接尝试读取../../../etc/passwd看看能不能读取:
    在这里插入图片描述

  • 可以看到是能够成功读取的,其实这个应该是目录穿越的内容,不过也差不多,因为很多漏洞都是组合使用才能出效果的

任意文件删除
原理
  • 这个常常出现在后台中
  • 当前台或者后台存在删除功能点时,可能存在这样的安全问题
  • 利用:常规删除重装锁定配合程序重装或高危操作
  • 需要注意的是,删除文件是高危操作,一般都是看能不能删除自己的文件,然后进行删除操作,不然删到了敏感文件就gg了
演示案例
  • 我们使用seacms这个CMS框架作为演示案例

  • 成功安装之后,我们登入后台,然后找到删除功能点:
    在这里插入图片描述

  • 然后我们随便点一个,抓包看看他的传参形式是否可能存在漏洞:
    在这里插入图片描述

  • 可以看到它的传参形式是filedir=xxxx的类型,那就有可能存在漏洞,这里我们在比如根目录下添加一个1.txt,看他能不能删除:
    在这里插入图片描述
    在这里插入图片描述

  • 这里提示只能删除templets目录下的文件,那说明限制了目录,那我们就改一下:
    在这里插入图片描述

  • 删除成功,所以这个是存在目录穿越以及任意文件删除的

目录安全 - 遍历&穿越 - 黑白盒

目录遍历
  • 目录遍历是因为权限控制不当,导致攻击者可以通过遍历获取到有价值的信息文件去利用

  • 该漏洞与网站源码目录的设置有关,比如这里的seacms,我们可以右击文件夹然后找到安全:
    在这里插入图片描述

  • 这里如果对应的角色有“列出文件夹内容”的权限,那就可能有这个漏洞

  • 而在中间件中,就与网站的配置有关,比如这里小皮有一个目录索引的选项,我们可以开启看一看:
    在这里插入图片描述

  • 之后我们再去访问刚刚的官网,这里你会发现访问有的目录它会显示目录遍历的结果,访问有的目录它仍然显示php解析后的内容:
    在这里插入图片描述
    在这里插入图片描述

  • 这是因为设置里有一个网站首页,就是说如果有index.phpindex.html这样的文件存在的话,那就解析这个文件,就不会形成目录遍历

  • 那这个漏洞存在还是蛮多的,我们可以去fofa上搜一搜,语法为:"index of /" && title=="index of /"
    在这里插入图片描述

  • 比如这个网站,就有可能泄露一些配置文件或者一些隐私文件

目录穿越
  • 目录穿越是因为权限控制不当以及过滤不全,导致攻击者可以通过使用../等目录控制序列或者文件的绝对路径来访问存储在文件系统上的任意文件和目录

  • 需要注意的一点是,它和目录遍历不等同,只是他们两个经常一起出现配合使用;目录遍历是遍历出某个文件夹的所有目录文件,而目录穿越是可以穿越到其他文件夹

  • 我们还是以刚才的seacms为例子,还是熟悉的模板那里:
    在这里插入图片描述

  • 我们可以看到上面显示了一个当前目录:xxxx,那这里可不可能存在目录穿越呢?

  • 复制这个html的网址链接如上,然后我们发现它也是通过传递参数去实现显示目录的

  • 抓包,将参数改为/看看:
    在这里插入图片描述

  • 提示只能编辑templets,那我们保持当前目录为templets,然后使用../看能不能穿越到其他目录:
    在这里插入图片描述

  • 可以看到,绕过了刚刚的限制,访问到了网站的根目录,那这里就存在目录穿越以及目录遍历的漏洞

  • 之后的话就可以尝试访问一些配置文件看看能不能配合其他的漏洞打一打了

黑盒分析
  • 功能点:文件上传、文件下载、文件删除、文件管理器等地方
  • URL特征
    • 文件名:downloaddownreadfilereaddeldirpathsrclang
    • 参数名:filepathdatafilepathreadfiledataurlrealpath
白盒分析
  • 上传类函数、删除类函数、下载类函数、目录操作类函数、读取查看类函数等
http://www.dtcms.com/a/314430.html

相关文章:

  • Ubuntu 下编译 SQLCipher 4.8.0
  • yolo实现基于深度学习的龋齿检测系统pyqt
  • Java 发送 HTTP POST请求教程
  • 回归预测 | MATLAB实现BP神经网络多输入单输出回归预测+SHAP可解释分析
  • 基于Matlab的聚类彩色图像分割系统
  • 基于MATLAB实现的心电图自动诊断系统
  • 各种信号分解、模态分解方法合集【MATLAB实现】
  • 链表问题解决分析框架
  • python与C++
  • 【RH124知识点问答题】第7章 控制对文件的访问
  • 【秋招笔试】2025.08.03虾皮秋招笔试-第一题
  • 芯片行业中的EDA(电子设计自动化)是什么?
  • 房屋租赁小程序租房小程序房产信息发布系统房屋租赁微信小程序源码
  • 用户管理——配置文件和命令
  • 探索机器学习在医疗领域的应用与挑战
  • Visual Studio 2022安装与快捷键全攻略
  • AI产品经理面试宝典第61天:AI产品体验、数据安全与架构实战解析
  • Linux中netstat详细使用指南
  • 开源的现代数据探索和可视化平台:Apache Superset 架构组件和安装方式 Kubernetes Docker Compose PyPI
  • 服务器突然之间特别卡,什么原因?
  • 为什么要烧录固件?——从生产到运维的全流程解析
  • k8s学习
  • 佚名运维训练营-第1天
  • 2025-08-04-零成本搭建 AI 应用!Hugging Face 免费 CPU 资源实战指南
  • 飞算JavaAI编程插件:以AI之力赋能Java开发,让编码效率再升级
  • 37. line-height: 1.2 与 line-height: 120% 的区别
  • 总结成人本科毕业前有哪些任务?
  • C++面试题及详细答案100道( 01-10 )
  • Android 分析底电流高即功耗大的几个方面
  • React 19 + Next.js 15 中实现混合布局