常见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 鼠标框选 减去已经选择的;…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...