常见web信息泄露
一、源码(备份文件)泄露
1、git泄露
Git是一个开源的分布式版本控制系统,在执行git init
初始化目录的时候,会在当前目录下自动创建一个.git
目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git
这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码
hook:存放一些sheel的地方。
info:存放仓库的信息
objects:存放所有git对象的地方
refs:存放提交hash的地方
config:github的配置信息
description:仓库的描述信息,主要给gitweb等git托管系统使用
HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
git泄露可以使用GitHack利用工具进行利用,工具地址https://github.com/zwshi/GitHack.git
使用方法:python GitHack.py http://www.example.com/.git/
还原后的文件在 dist/ 目录下
例题1:CTFHub-----log
1)扫描发现 .git 泄露
2)python GitHack.py 题目url/.git/
将源码clone到本地,然后进入该目录
3)执行 git log 查看历史记录
4)git diff提交的记录码
注:
查看历史记录:git log
对比两次提交:git diff
切换版本:git reset
例题2:CTFHub----stash
同样先使用GitHack将git clone到本地,然后查看
去查了一下资料:
git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
查看当前堆栈中保存的未提交的修改 使用git stash list
可看到add flag这个工作也被保存在了堆栈中,所以只需要知道如何恢复就可以了
使用git stash apply
恢复了一个txt文件,查看得到flag
例题3:CTFHub----index
这道题直接用githack工具clone到源码就得到flag了
但参考了一下大佬的wp,发现考点其实是git的index暂存区文件
1)使用git ls-files
查看暂存区里面有哪些文件
2)需要查看27741192706094.txt文件对应的Blob对象,如下:
git ls-files -s -- 27741192706094.txt`或者直接 `git ls-files -s
3)然后通过Blob对象,查询27741192706094.txt.txt
里面的内容:git cat-file -p 441a2
修复建议
删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。
2、SVN泄露
使用svn版本控制系统时,由于错误操作将.svn文件暴露在外网环境中,即可利用该文件还原出服务器源码、SVN服务器账号密码等信息。
当svn使用了checkout命令后就会生成.svn文件,里面存储着备份信息。
svn信息泄露漏洞主要利用了里面的entris文件,通过.svn/entris
可以下载里面的所有代码,但是只能作用在svn1.6之前的版本;在svn1.7后的版本引入一个名为wc.db的数据库数据存放文件来管理文件,通过访问.svn/wc.db
可以下载到本地。
利用工具:dvcs-ripper 地址:https://github.com/kost/dvcs-ripper (需要有svn和perl环境)
例题:ctfhub-svn
这里是svn1.7之后的版本,我们下载wc.db文件,/.svn/wc.db
使用SQLiteStudio打开,发现flag_1831822206.txt
文件,访问之
我们使用dvcs-ripper工具:https://github.com/kost/dvcs-ripper
perl rip-svn.pl -u http://challenge-8cad6507cc3f2aca.sandbox.ctfhub.com:10080/.svn/
我们需要使用ls -al
才可以看到隐藏的文件夹.svn
因为之前我们已经尝试了访问wc.db
数据库里面的文件了,但是发现flag.txt
已经被删除了,所以我们到缓存文件夹pristine文件夹里面去寻找flag,在8f文件夹里面获取到flag
3、hg源码泄露
Mercurial 是一种轻量级分布式版本控制系统,hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件
eg: http://www.example.com/.hg/
利用工具:dvcs-ripper:https://github.com/kost/dvcs-ripper
使用:
rip-hg.pl -v -u http://www.example.com/.hg/
如果没有设置系统变量,需要
perl rip-hg.pl -u http://www.example.com/.hg/
查看隐藏文件:ls -al
例题—ctfhub-hg
直接用工具即可
4、DS_Store 文件泄露
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
eg: http://www.example.com/.ds_store/
利用工具:
ds_store_exp: https://github.com/lijiejie/ds_store_exp
使用:
查看隐藏文件:`ls -al`例题---ctfhub-hg直接用工具即可##### 4、DS_Store 文件泄露.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。eg: `http://www.example.com/.ds_store/`利用工具:ds_store_exp: `https://github.com/lijiejie/ds_store_exp`使用:
5、CVS泄露
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
eg:
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构
利用工具:dvcs-ripper: https://github.com/kost/dvcs-ripper.git
使用:
rip-cvs.pl -v -u http://www.example.com/CVS/
6、GitHub源码泄漏
很多人喜欢把自己的代码上传到平台托管。通过关键词进行搜索,可以找到关于目标站点的敏感信息,甚至可以下载网站源码。
7、网站备份文件
常见的网站源码备份文件后缀
- tar
- tar.gz
- zip
- rar
常见的网站源码备份文件名
- web
- website
- backup
- back
- www
- wwwroot
- temp
也可以直接用御剑扫描后台
8、vim缓存
vim会自动生成的备份文件以及临时文件
临时文件是在编辑文本时就会创建的文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为.filename.swp
,(第一次产生的交换文件名为“.filename.txt.swp
”;再次意外退出后,将会产生名为.filename.txt.swo
的交换文件;而第三次产生的交换文件则为.filename.txt.swn
)
例题:CTFHub—vim缓存
二、中间件等其他信息泄露
1、phpinfo
有些网站可能未关闭调试功能,存在调试页面,比如访问phpinfo页面
phpinfo去过能被外部用户访问,可能会造成的危害有:
泄露网站真实ip
网站绝对路径泄漏或日志文件路径泄露,可以写入shell
泄露一些特殊的应用信息和服务
一些敏感配置,比如禁用的函数
php版本信息
2、Apache-tomcat样例文件泄露
apache 的一些样例文件没有删除,可能存在cookie、session伪造,进行后台登录操作。常见的路径有:
http://xxx.com/examples/servlets/servlet/CookieExample
http://xxx.com/examples/servlets/servlet/RequestHeaderExample
http://xxx.com/examples/jsp/snp/snoop.jsp
http://xxx.com/examples/async/async1
例:https://blog.csdn.net/alex_bean/article/details/87854752
3、WEB-INF/web.xml 泄露
WEB-INF
是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF
主要包含一下文件或目录:
WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。
4、tomcat
tomcat 后缀改成大写,会显示源码
只要把jsp文件后缀名改为大写就可以(老版本)
个人笔记,可能有遗漏,后续补充…
相关文章:
常见web信息泄露
一、源码(备份文件)泄露 1、git泄露 Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除ÿ…...
找不到VCRUNTIME140_1.dll怎么办,VCRUNTIME140_1.dll丢失的5个解决方法
在当今的数字时代,我们的生活和工作都离不开电脑。然而,随着科技的发展,我们也会遇到各种各样的问题。其中,VCRUNTIME140_1.dll丢失的问题是许多人都会遇到的困扰。这个问题可能会导致许多应用程序无法正常运行,给我们…...
C#生成自定义海报
安装包 SixLabors.ImageSharp.Drawing 2.0 需要的字体:宋体和微软雅黑 商用的需要授权如果商业使用可以使用方正书宋、方正黑体,他们可以免费商用 方正官网 代码 using SixLabors.Fonts; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Draw…...
BP神经网络的MATLAB实现(含源代码)
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一 具体数学推导以及原理在本文不做详细介绍,本文将使用MATLAB进行B…...
AES和Rijndael的区别
快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】:密码学实践强化训练–【目录】 👈👈👈“Rijndael” 这个词的中文谐音可以近似地发音为 “瑞恩达尔”。请注意,这只是一种近似的发音方式,因为该词是荷兰姓氏 “Ri…...
【数据结构】—堆详解(手把手带你用C语言实现)
食用指南:本文在有C基础的情况下食用更佳 🔥这就不得不推荐此专栏了:C语言 ♈️今日夜电波:水星—今泉愛夏 1:10 ━━━━━━️💟──────── 4:23 …...
关于算法复杂度的几张表
算法在改进今天的计算机与古代的计算机的区别 去除冗余 数据点 算法复杂度 傅里叶变换...
蓝桥杯每日一题2023.10.1
路径 - 蓝桥云课 (lanqiao.cn) 题目分析 求最短路问题,有多种解法,下面介绍两种蓝桥杯最常用到的两种解法 方法一 Floyd(求任意两点之间的最短路)注:不能有负权回路 初始化每个点到每个点的距离都为0x3f这样才能对…...
第三章:最新版零基础学习 PYTHON 教程(第十节 - Python 运算符—Python 中的运算符重载)
运算符重载意味着赋予超出其预定义操作含义的扩展含义。例如,运算符 + 用于添加两个整数以及连接两个字符串和合并两个列表。这是可以实现的,因为“+”运算符被 int 类和 str 类重载。您可能已经注意到,相同的内置运算符或函数对于不同类的对象显示不同的行为,这称为运算符…...
Nacos 实现服务平滑上下线(Ribbon 和 LB)
前言 不知道各位在使用 SpringCloud Gateway Nacos的时候有没有遇到过服务刚上线偶尔会出现一段时间的503 Service Unavailable,或者服务下线后,下线服务仍然被调用的问题。而以上问题都是由于Ribbon或者LoadBalancer的默认处理策略有关,其…...
c/c++里 对 共用体 union 的内存分配
对union 的内存分配,是按照最大的那个成员分配的。 谢谢...
博途SCL区间搜索指令(判断某个数属于某个区间)
S型速度曲线行车位置控制,停靠位置搜索功能会用到区间搜索指令,下面我们详细介绍区间搜索指令的相关应用。 S型加减速行车位置控制(支持点动和停车位置搜索)-CSDN博客S型加减速位置控制详细算法和应用场景介绍,请查看下面文章博客。本篇文章不再赘述,这里主要介绍点动动和…...
(三)激光线扫描-中心线提取
光条纹中心提取算法是决定线结构光三维重建精度以及光条纹轮廓定位准确性的重要因素。 1. 光条的高斯分布 激光线条和打手电筒一样,中间最亮,越像周围延申,光强越弱,这个规则符合高斯分布,如下图。 2. 传统光条纹中心提取算法 传统的光条纹中心提取算法有 灰度重心法、…...
递归与分治算法(1)--经典递归、分治问题
目录 一、递归问题 1、斐波那契数列 2、汉诺塔问题 3、全排列问题 4、整数划分问题 二、递归式求解 1、代入法 2、递归树法 3、主定理法 三、 分治问题 1、二分搜索 2、大整数乘法 一、递归问题 1、斐波那契数列 斐波那契数列不用过多介绍,斐波那契提出…...
Java之SpringCloud Alibaba【六】【Alibaba微服务分布式事务组件—Seata】
一、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 在关系数据库中,一个事务由一组SQL语句组成。 事务应该具有4个属性: 原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity) ∶个事务…...
Android逆向学习(五)app进行动态调试
Android逆向学习(五)app进行动态调试 一、写在前面 非常抱歉鸽了那么久,前一段时间一直在忙,现在终于结束了,可以继续更新android逆向系列的,这个系列我会尽力做下去,然后如果可以的话我看看能…...
音频编辑软件Steinberg SpectraLayers Pro mac中文软件介绍
Steinberg SpectraLayers Pro mac是一款专业的音频编辑软件,旨在帮助音频专业人士进行精细的音频编辑和声音处理。它提供了强大的频谱编辑功能,可以对音频文件进行深入的频谱分析和编辑。 Steinberg SpectraLayers Pro mac软件特点 1. 频谱编辑ÿ…...
基于.Net Core实现自定义皮肤WidForm窗口
前言 今天一起来实现基于.Net Core、Windows Form实现自定义窗口皮肤,并实现窗口移动功能。 素材 准备素材:边框、标题栏、关闭按钮图标。 窗体设计 1、创建Window窗体项目 2、窗体设计 拖拉4个Panel控件,分别用于:标题栏、关…...
【Rust】操作日期与时间
目录 介绍 一、计算耗时 二、时间加减法 三、时区转换 四、年月日时分秒 五、时间格式化 介绍 Rust的时间操作主要用到chrono库,接下来我将简单选一些常用的操作进行介绍,如果想了解更多细节,请查看官方文档。 官方文档:chr…...
blender快捷键
1, shift a 添加物体 2,ctrl alt q 切换四格视图 3, ~ 展示物体的各个视图按钮,(~ 就是tab键上面的键) 4,a 全选,全选后,点 ctrl 鼠标框选 减去已经选择的;…...
java Spring Boot 自动启动热部署 (别再改点东西就要重启啦)
上文 java Spring Boot 手动启动热部署 我们实现了一个手动热部署的代码 但其实很多人会觉得 这叫说明热开发呀 这么捞 写完还要手动去点一下 很不友好 其实我们开发人员肯定是希望重启这种事不需要自己手动去做 那么 当然可以 我们就让它自己去做 Build Project 这个操作 我们…...
TouchGFX之后端通信
在大多数应用中,UI需以某种方式连接到系统的其余部分,并发送和接收数据。 它可能会与硬件外设(传感器数据、模数转换和串行通信等)或其他软件模块进行交互通讯。 Model类 所有TouchGFX应用都有Model类,Model类除了存…...
cesium gltf控制
gltf格式详解 glTF格式本质上是一个JSON文件。这一文件描述了整个3D场景的内容。它包含了对场景结构进行描述的场景图。场景中的3D对象通过场景结点引用网格进行定义。材质定义了3D对象的外观,动画定义了3D对象的变换操作(比如选择、平移操作)。蒙皮定义了3D对象如何进行骨骼…...
Spring的依赖注入(DI)以及优缺点
Spring的依赖注入(DI):解释和优点 依赖注入(Dependency Injection,简称DI)是Spring框架的核心概念之一,也是现代Java应用程序开发的重要组成部分。本文将深入探讨DI是什么,以及它的…...
【强化学习】05 —— 基于无模型的强化学习(Prediction)
文章目录 简介蒙特卡洛算法时序差分方法Example1 MC和TD的对比偏差(Bias)/方差(Variance)的权衡Example2 Random WalkExample3 AB 反向传播(backup)Monte-Carlo BackupTemporal-Difference BackupDynamic Programming Backup Boot…...
【计算机组成原理】考研真题攻克与重点知识点剖析 - 第 1 篇:计算机系统概述
前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限ÿ…...
【Java-LangChain:面向开发者的提示工程-8】聊天机器人
第八章 聊天机器人 使用一个大型语言模型的一个令人兴奋的事情是,我们可以用它来构建一个定制的聊天机器人 (Chatbot) ,只需要很少的工作量。在这一节中,我们将探索如何利用聊天的方式,与个性化(或专门针对特定任务或…...
利用t.ppft.interval分别计算T分布置信区间[实例]
scipy.stats.t.interval用于计算t分布的置信区间,即给定置信水平时,计算对应的置信区间的下限和上限。 scipy.stats.t.ppf用于计算t分布的百分位点,即给定百分位数(概率)时,该函数返回给定百分位数对应的t…...
软件工程第三周
可行性研究 续 表达工作量的方式 LOC估算:Line of Code 估算公式S(Sopt4SmSpess)/6 FP:功能点 1. LOC (Line of Code) 估算 定义:LOC是指一个软件项目中的代码行数。 2. FP (Function Points) 估算 定义:FP是基于软件的功能性和…...
动态链接那些事
1、为什么要动态链接 1.1 空间浪费 对于静态链接来说,在程序运行之前,会将程序所需的所有模块编译、链接成一个可执行文件。这种情况下,如果 Program1 和 Program2 都需要用到 Lib.o 模块,那么,内存中和磁盘中实际上就…...
wordpress建站费用/成品网站seo
题目要求: 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。 输入格式: 输入在一行中给出一个长整型范围内的非负整数。 输出格式: 从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。…...
南宁 做网站/专业营销策划团队
引言上一篇的CheckBox已经让大家越来越接近实战演练了,本章我们继续分享干货给大家,今天介绍一个实用的UI控件RatingBar(星级评分条),对于使用过电商APP(某东,某宝等)的小伙伴们来说,应该不会陌生。在对商品进行评价时…...
三国曹魏古城建设网站/广东做seo的公司
C# 检查字符串,防SQL注入攻击这个例子里暂定为号和号bool CheckParams(params object[] args){ string[] Lawlesses{"",""};//在这里还可以写要过滤的字符串 if(Lawlessesnull||Lawlesses.Length<0)return true; //构造正则表达式,例:Lawlesse…...
温州网站制作优化/站内seo优化
实操记录 版本: Flink 1.11.2 iceberg 最新版本 zeppelin hive 是基于cdh 6.3.2版本下的hive 2.1 注意,iceberg只支持2.x以上,官网说的。 一,保证Flink on zeppelin 查询hive没问题 1)Zeppelin flink 参数配置&…...
洛阳设计网站公司/佛山seo整站优化
文本主要介绍一下slf4jlogback在java工程中的配置,面向的读者是已经对slf4jlogback有一定了解的同学,不了解的同学,请看文章末尾的相关链接。以后会写一篇介绍slf4j框架的文章,其中会说明logback与之的关系。下面咱们进入正题。 …...
php 网站安装原理/交换友链要注意什么
Javascript 这门语言与其他的大部分语言相比,有很多特殊性,这是很多人喜欢它或者讨厌它的原因。其中变量的作用域问题,对很多初学者来说就是一个又一个「坑」。 变量的作用域在编程技能中算是一个基本概念,而在 Javascript 中&…...