当前位置: 首页 > 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.xdnf.cn/news/1239805.html

相关文章:

  • Nexus配置npm私有仓库
  • Java项目:基于SSM框架实现的商铺租赁管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告+任务书+远程部署】
  • LLM大模型开发-SpringAI:ChatClient、Ollama、Advisor
  • io_destroy系统调用及示例
  • 基于 LangChain + 通义千问 + bge-large 中文 Embedding 搭建一个RAG问答示例
  • FastAPI入门:安全性
  • 第12届蓝桥杯Scratch图形化【省赛】初级组 2021年4月24日
  • MySQL学习之MVCC多版本并发控制
  • python常用数据类型
  • 13.Redis 的级联复制
  • 03.一键编译安装Redis脚本
  • sqli-labs:Less-23关卡详细解析
  • 【运维基础】Linux 硬盘分区管理
  • 数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter
  • Corrosion2靶机练习笔记
  • 选择排序原理与C语言实现详解
  • 第15届蓝桥杯Scratch图形化国赛初/中级组2024年9月7日真题
  • 【LeetCode刷题指南】--对称二叉树,另一颗树的子树
  • 【量化交易】日内交易有效特征因子
  • Socket编程——TCP协议
  • 智慧社区(六)——社区居民人脸识别功能实现详解:从腾讯 API 集成到模拟验证
  • CMake 命令行参数完全指南(2)
  • C++入门自学Day5-- C/C++内存管理(续)
  • 控制建模matlab练习08:根轨迹
  • 【图像处理基石】如何使用deepseek进行图像质量的分析?
  • pycharm上如何添加conda环境
  • 当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题
  • [硬件电路-150]:数字电路 - 数字电路与模拟电路的异同
  • Ollama模型库模型下载慢完美解决(全平台)
  • 算法讲解--最大连续1的个数