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

常见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文件后缀名改为大写就可以(老版本)

个人笔记,可能有遗漏,后续补充…

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

相关文章:

  • 找不到VCRUNTIME140_1.dll怎么办,VCRUNTIME140_1.dll丢失的5个解决方法
  • C#生成自定义海报
  • BP神经网络的MATLAB实现(含源代码)
  • AES和Rijndael的区别
  • 【数据结构】—堆详解(手把手带你用C语言实现)
  • 关于算法复杂度的几张表
  • 蓝桥杯每日一题2023.10.1
  • 第三章:最新版零基础学习 PYTHON 教程(第十节 - Python 运算符—Python 中的运算符重载)
  • Nacos 实现服务平滑上下线(Ribbon 和 LB)
  • c/c++里 对 共用体 union 的内存分配
  • 博途SCL区间搜索指令(判断某个数属于某个区间)
  • (三)激光线扫描-中心线提取
  • 递归与分治算法(1)--经典递归、分治问题
  • Java之SpringCloud Alibaba【六】【Alibaba微服务分布式事务组件—Seata】
  • Android逆向学习(五)app进行动态调试
  • 音频编辑软件Steinberg SpectraLayers Pro mac中文软件介绍
  • 基于.Net Core实现自定义皮肤WidForm窗口
  • 【Rust】操作日期与时间
  • blender快捷键
  • java Spring Boot 自动启动热部署 (别再改点东西就要重启啦)
  • TouchGFX之后端通信
  • cesium gltf控制
  • Spring的依赖注入(DI)以及优缺点
  • 【强化学习】05 —— 基于无模型的强化学习(Prediction)
  • 【计算机组成原理】考研真题攻克与重点知识点剖析 - 第 1 篇:计算机系统概述
  • 【Java-LangChain:面向开发者的提示工程-8】聊天机器人
  • 利用t.ppft.interval分别计算T分布置信区间[实例]
  • 软件工程第三周
  • 动态链接那些事
  • 力扣:118. 杨辉三角(Python3)