信息泄露总结

一、备份文件下载

1.1 网站源码

  常见的网站源码备份文件后缀:

  • tar
  • tar.gz
  • zip
  • rar
      常见的网站源码备份文件名:
  • web
  • website
  • backup
  • back
  • www
  • wwwroot
  • temp

1.2 bak文件泄露

  有些时候网站管理员可能为了方便,会在修改某个文件的时候先复制一份,将其命名为xxx.bak。而大部分Web Server对bak文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码。
  方法:将例如index.php.bar文件重命名index.php,再打开。
在这里插入图片描述

1.3 vim缓存

  当vim异常退出时,都会生成一个用于备份缓冲区内容的swp临时文件,来记录了用户在非正常关闭vim编辑器之前未能及时保存的修改,用于文件恢复。假如原文件名为index.php

  • 第一次产生的交换文件名为 index.php.swp
  • 第二次产生的交换文件名为 index.php.swo
  • 第三次产生的交换文件名为 index.php.swn

方法:同上,访问xxx/index.php.swp,改文件名为index.php再打开。

1.4 .DS_Store

  .DS_Store是 Mac OS 保存文件夹的自定义属性的隐藏文件,通过.DS_Store可以知道这个目录里面所有文件的清单。直接访问xxx/.DS_Store可以下载该文件,但是无法读取,要想读取该文件,需要用到ds_store_exp.py,用法:python ds_store_exp.py <url>/.DS_Store
在这里插入图片描述
再访问该脚本扫描到的文件/文件夹。

二、Git泄露

2.1 git知识点

  • .git目录:使用git init初始化git仓库的时候,生成的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。
  • .git/config:Git仓库的配置文件
  • .git/config:这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的paren

    除了上述文件,还有其他文件。

  git信息泄露的原因:当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

  判断是否存在git泄露
使用curl访问目标网址下的xxx/.gitxxx/.git/config或者xxx/.git/HEAD,看是否有内容返回。
在这里插入图片描述
说明存在git信息泄露,再使用githacker。使用githacker的目的是去github上下载网站源码。

2.1 log

下载网站源码:python2 Githack.py http://challenge-b600332c47be484d.sandbox.ctfhub.com:10800/.git
在这里插入图片描述

进入相应的目录,直接使用git log查看日志
在这里插入图片描述

当前所处的版本为remove flag,flag 在add flag 这次提交中

  • 方法一:直接与 add flag (dc33) 这次提交进行比对,命令如下:git diff dc33(add flag)
    在这里插入图片描述

  • 方法二:直接切换到add flag (dc22) 这个版本。命令如下:git reset --hard dc33(add flag)
    在这里插入图片描述

2.2 stash

  知识点:git 泄露 .git/refs/stashstash用于保存 git 工作状态到 git 栈,在需要的时候再恢复。使用stash命令可以恢复文件。

下载网站源码:python2 Githack.py http://challenge-ccc966c169231c6b.sandbox.ctfhub.com:10800//.git
在这里插入图片描述

进入到相应文件夹,执行 git stash list 查看是否有stash:
在这里插入图片描述

此处存在stash

git stash pop弹出git栈中的文件。
在这里插入图片描述
flag就在txt文件中。
> 可以将stash栈理解为一个放被删除的文件的栈,就相当于一个回收站。

三、SVN泄露

3.1 SVN简介

  SVN(subversion)是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就用用于多个人共同开发同一个项目,实现的共享资源,实现最终集中式的管理。在使用 SVN 管理本地代码过程中,使用svn checkout功能来更新代码时,项目目录下会自动生成隐藏的.svn文件夹,其中包含重要的源代码信息;
造成SVN源代码漏洞的主要原因是管理员操作不规范,在发布代码时未使用导出功能,而是直接复制代码文件夹到WEB服务器上,导致.svn被暴露于外网环境,黑客对此可进一步利用:

  • 利用其中包含的用于版本信息追踪的.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息;
  • 利用.svn/wc.db数据库文件获取到一些数据库信息;
  • 利用SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,则可以直接获得文件源代码。

3.2 SVN的文件

  • entriesformat文件,数据只有个数字12。
  • wc.db-journal空文件
  • tmp空目录
  • pristine里是一些00~ff的名称的文件夹,每个文件夹里有若干哈希过的.svn-base备份文件
  • wc.db文件用SQLiteStudio软件打开 wc.db文件,在 NODES 表中,遍历这个表里的每一行,就可以下载到整个项目里的代码了,而且还能得到对应的真实文件名。

3.3 SVN利用

  1. 判断是否存在SVN泄露
    在这里插入图片描述

    说明存在svn泄露

  2. 使用dvcs-ripper下载.svn文件夹,命令如下:rip-svn.pl -u <url>/.svn。注意要安装perl环境。
    在这里插入图片描述
  3. pristine文件夹中找备份文件。
    在这里插入图片描述

四、Hg泄露

  当开发人员使用 Mercurial(hg) 进行版本控制,对站点自动部署。在初始化项目时,HG会在当前文件夹下创建一个.hg 隐藏文件夹,其中包含代码和分支修改记录等信息。
可以先使用curl <url>/.hg测试一下:
在这里插入图片描述

之前.svn也是301,说不定存在hg泄露。

使用dvcs-ripper下载网站源码,命令如下:rip-hg.pl -v -u <url>/.hg/
在这里插入图片描述
使用tree .hg查看文件夹结构:
在这里插入图片描述
递归查找子文件目录下的关键词flag:grep -r flag
在这里插入图片描述
进入cd .hg/store/fncache,这里应该是保存网站源码缓存的地方,可以看到有index.html50x.html
在这里插入图片描述
故访问http://challenge-e04eb8044f3c9d3e.sandbox.ctfhub.com:10800/flag_1807820070.txt.
在这里插入图片描述

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 5、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 7、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bea
网络安全总结全文共21页,当前为第1页。网络安全总结 网络安全总结全文共21页,当前为第1页。 第一章网络安全基础 信息安全的四个属性 保密性(Confidentiality):确保信息不被泄露或呈现给非授权的人。 完整性(Integrity):确保数据的一致性;特别要防止未经授权生成、修改或毁坏数据。 可用性(Availability):确保合法用户不会无缘无故地被拒绝访问信息或资源。 合法使用(Legitimate Use):确保资源不被非授权的人或以非授权的方式使用 基本威胁 信息泄露信息泄露或透露给某个非授权的人或实体。这种成胁来自诸如窃听、搭线或其他更加错综复杂的信息探测攻击。 完整性破坏:数据的一致性通过非授权的增删、修改或破坏而受到损坏。 拒绝服务:对信息或资源的访问被无条件地阻止。这可能由以下攻击所致:攻击者通过对系统进行非法的、根本无法成功的访问尝试使系统产生过量的负荷,从而导致系统的资源在合法用户看来是不可使用的。拒绝服务也可能是因为系统在物理上,或逻辑上受到破坏而中断服务。 网络安全总结全文共21页,当前为第2页。非法使用:某一资源被某个非授权的人或以某种非授权的方式使用。例如,侵入某个计算机系统的攻击者会利用此系统作为盗用电信服务的基点,或者作为侵入其他系统的"桥头堡" 网络安全总结全文共21页,当前为第2页。 安全防护措施的分类 物理安全:防火、防盗 人员安全安全性培训、职责划分 管理安全:有章可循 媒体安全:可控(销毁、报道) 辐射安全:二次发射 生命周期控制 网络安全策略 安全策略是指在某个安全域内,施加给所有与安全活动相关活动的一套规则。 分成三个等级: 安全策略目标:诉求宪法 机构安全策略:大范围法律 系统安全策略:小范围规章 安全攻击的分类 被动攻击(Passive attack):试图获得或利用系统的信息,但不会对系统的资源造成破坏。(窃听攻击、流量分析------加密即可防止) 网络安全总结全文共21页,当前为第3页。主动攻击(Active attack):试图破坏系统的资源,影响系统的正常工作 网络安全总结全文共21页,当前为第3页。 伪装攻击:某个实体假装成其他实体,对目标发起攻击 重放攻击:攻击者为了达到某种目的,将获得的信息再次发送,以在非授权的情况下进行传输。 消息篡改:攻击者对所获得的合法消息中的一部分进行修改或延迟消息的传输,以达到其非授权的目的。 拒绝服务:阻止人们正常使用网络。 能分辨一些网络攻击 口令窃取: 口令登录、口令猜测(利用已知或假定的口令尝试;根据窃取的口令文件进行猜测;窃取某次合法终端之间的会话。)、坏口令。(One time password 一次一密策略) 欺骗攻击:邮件、音频、视频 缺陷和后门攻击 缓冲器溢出:堆栈粉碎 缺陷(Flaws) Morris: 因而需要确保正确性: 网络安全总结全文共21页,当前为第4页。编写软件时:内存分配 网络安全总结全文共21页,当前为第4页。 输入时:编译工具 最小特权原则 认证失效 是许多攻击的根源、密码锁的作用 源地址有效性验证:重发请求 协议缺陷 现有Internet的限制——TCP三次握手 密码学协议Sha1,DES WEP 与EAP 信息泄露 Finger 电话号码 DNS:网络拓扑 拒绝服务(过度使用服务,使软硬件过度运行) Ping of Death:ICMP包 Teardrop:IP碎片偏移重叠 UDP泛洪:chargen服务—echo服务 SYN泛洪: Land攻击:源地址目的地址指向同一个位置 DOS:RST位 DDoS:分布式拒绝服务 网络安全总结全文共21页,当前为第5页。指数攻击---病毒和蠕虫 网络安全总结全文共21页,当前为第5页。 网络安全总结全文共21页,当前为第6页。 网络安全总结全文共21页,当前为第6页。 网络安全总结全文共21页,当前为第7页。 网络安全总结全文共21页,当前为第7页。 介于网络层和传输层的协议,它的主要功能是传输网络诊断信息。 ICMP传输的信息可以分为两类,一类是错误(error)信息,这一类信息可用来诊断网络故障。ICMP只提供特定类型的错误汇报,它不能帮助IP协议成为"可靠"(reliable)的协议。 另一类信息是咨询(Informational)性质的,比如某台计算机询问路径上的每个路由器都是谁,然后各个路由器同样用ICMP包回答。 重定向、Ping of death、Path MTU @传输控制协议TCP的安全性 IP数据包容易丢失、被复制和乱序传递,TCP用于提供可靠的链路。 重传重组 一般只有超级用户才可创建1024以下端口 三次握手:SYN Flood 序号选择:序号攻击 @用户数据报文协议UDP的安全缺陷 无纠错和重传 无数据包

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值