web-信息泄露-CTFHub

前言

CTFHub的技能树相对于其他CTF平台会更有条例、逻辑更清晰,作者目前正以技能树为主线进行Web安全的学习,所以会持续更新CTFHub-Web系列,希望小伙伴们多多支持。

目录遍历

一、wp

挨个对里面的目录进行寻找,但是flag每次出现的位置都随机,多找找就可以发现,最终可以在某个目录中找到flag

二、题目考点

由于配置错误导致网站的目录可被遍历,一般该类漏洞可以为后续利用提供一些信息上的帮助

PHPINFO

一、wp

点开发现里面杂七杂八的东西还是比较多的

用Ctrl+F查找flag必有的ctfhub{,找到flag。

(作者发现这里面有两个位置有flag,不过是一模一样的)

二、题目考点

phpinfo() 是php中查看相关信息的函数,当在页面中执行phpinfo()函数时,php会将自身的所有信息全部打印出来。在phpinfo中会泄露很多服务端的一些信息。

例如安装的一些模块、网站绝对路径、服务器自身的操作系统、使用的组件版本等等,在phpinfo中获得的这些信息会为下一步的渗透/做题提供一些帮助

 备份文件下载

网站源码

一、wp

当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。

题目应该就是让我们找备份的“源代码”(实际过程中我们找的是源代码,但这里应该是flag),这个源代码可能备份在下面提示中

顾名思义,备份文件备份的都是文件,所以遍历一下上面的文件名及后缀。

在这里给出四种扫描方法:

1、御剑

御剑有点坑,将超时延长,并且只扫DIR(目录;显示文件列表),还得多扫几次才行。

御剑最好还是得自定义目录。

2、dirsearch

根本不用管,暴力扫就可以,除了慢没别的缺点。

查看返回值,大部分都是503,返回200的表示可以访问

3、burpsuite

相对而言比较复杂,但是是最贴近题目的,充分利用了题目的提示

抓包,发送到Intruder,

在GET/后面(即网站地址处)添加两个负载,一个文件名,一个扩展名,用cluster bomb,

爆破文件名,这里需要添加一个后缀:.(点)

(也可以在payload2备份文件格式的前面加前缀 . )

爆破扩展名, 注意两者都不用payload encoding

开始攻击,出货

注:载荷尽量自己写,作者直接复制题目提示的,发现不合规范,不出flag

4、最后提一点,如果不怕麻烦,也可以自己一个个试(人工扫描)

二、题目考点

当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。这里有诸多目录,要求从中找出有效文件

三、相关知识

1、御剑的使用(具体内容点击此链接)

Web安全常用工具 (持续更新)-CSDN博客

2、dirsearch的使用(具体内容点击此链接)

Web安全常用工具 (持续更新)-CSDN博客

3、备份文件的访问

不要忽视对网站备份文件的搜查,里面可能会有有用的信息

bak文件

一、wp

当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。

<法1>、一进去就说flag在index.php中,在当前网址加上/index.php,没反应,考虑到是bak文件,输入/index.php.bak(要把题目提示结合起来考虑),下载了一个文件,用记事本打开,出flag

<法2>、也可以用curl打开index.php.bak,殊途同归

<法3>、用dirsearch也可以直接扫出来,这样是最简单的方法,扫出来在加到url上,也可以下载

二、题目考点

1、进一步考察web目录下的备份文件,这一题与网站源码一题一样,都是将源码备份,放在web目录下,不过这次是bak文件。

2、bak文件泄露:有些时候网站管理员可能为了方便,会在修改某个文件的时候先复制一份,将其命名为xxx.bak。而大部分Web Server对bak文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码

三、相关知识

1、 bak 是一个 备份文件 ,是一个文件格式的扩展名。这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成。

很多软件都会创建一个备份文件,当软件不小心因为删除或者机器意外关闭时,可以通过软件当时创建的备份文件继续编辑,为软件使用者减少了较大工作和损失。

2、附加知识点:文件恢复打开

一般来讲 ,.bak文件作为备份文件,可以通过直接重命名,把bak替换成原文件的格式就可以恢复此文件并且正常打开了。

举个简单例子:在autocad文件移动的时候有时会产生.bak文件,比如现在有一个asdfjk.dwg文件的备份文件asdfjk.bak ,想要把备份文件恢复成正式文件 只需要对该备份文件重命名把bak替换为dwg就可以打开了 。

同样,如果是word文件的备份文件只要把bak换成doc就可以了。(其实可以改成任何文件格式)。但是,加密过的.bak文件是无法通过修改重命名来打开的,就是打开了也是乱码

vim缓存

一、wp

当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。

<法1>、直接在url上加上/index.php,毫无反应,再加上vim,也不好使。

在这里要知道vim异常退出时,会产生swp文件,但是输入/index.php.swp也不行,然后需要知道swp是隐藏文件,最前面要加 .(点),应该输入/.index.php.swp,成功下载文件,记事本打开,得到flag

<法2>、利用curl访问(道理同上)即可直接看到flag,因为vim使用的缓存存储为一种固定格式的二进制文件。而我们一般编辑的时明问可见字符,在vim的缓存中这些可见字符会原样保留

<法3>、kali打开,这是最贴近题目的,之前的查看方式都会有乱码。

用wget下载.index.php.swp

这里有两种打开方式

1)直接用vim打开下载的文件   vim -r .index.php.swp  ,按ENTER

出flag

2)先恢复再打开,输入 vim index.php ,打开index.php,发现交换文件,按r恢复

出flag

二、题目考点

1、Vim异常退出后产生的文件

2、隐藏文件的访问

3、linux中vim的应用

      参考文献:

vim命令大全-CSDN博客

三、相关知识

1、swp文件

1)vim中的swp是swap(交换分区)的简写,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。如果文件正常退出,则此文件自动删除。如果并没有对文件进行修改,而只是读取文件,是不会产生swp文件的。

2)在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容。以 index.php 为例:第一次产生的交换文件名为 .index.php.swp;

再次意外退出后,将会产生名为 .index.php.swo 的交换文件;

第三次产生的交换文件则为 .index.php.swn;

2、隐藏文件的访问

 .swp是隐藏文件,因此最前面有.  ,即 .index.php.swp,(注意是index前面的点)。

 3、vim编辑器的使用

vim -r 可以查看当前目录下所有的swp文件。

vim -r filename可以恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件。

.DS_Store

一、wp

.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。

<法1>、尝试访问url/.DS_Store(用dirsearch可以直接扫出来),下载文件,记事本打开,看到 flag here!,但有好多空格,我们用记事本的编辑功能,然后点击替换,将空格替换成空,就是把所有的空格清除,得到下面的内容。

注:.txt后面一串字符,其中notuestr是注释的意思,这串字符的意思是“注释 flag 在这!”

所以我们只复制到.txt,尝试粘贴到url中访问,获得flag

<法2>、Curl也可以

没有空格,不需要去替换

<法3>、使用Linux系统打开文件

然后在url中访问

<法4>、工具Python-dsstore

使用Python-dsstore工具查看该文件

访问url/.DS_Store,把下载下来的文件复制到Python-dsstore文件夹中,

然后在Python-dsstore文件夹处打开cmd,输入以下命令

python main.py 无标题.DS_Store

注:这里“无标题.DS_Store”是作者下载的文件的名字,大家如果改名了或者名字不相同,应该用自己下载的文件的名字

二、题目考点

DS_Store 文件利用。

题目描述:DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。

三、相关知识

1、工具Python-dsstore的应用

(具体内容点击此链接)

Web安全常用工具 (持续更新)-CSDN博客

2、linux常用指令

有时间作者会单独写一篇,这里先讲cat的应用

cat 命令:用于查看文本文件的内容,后接要查看的文件名,通常可用管道与 more 和 less 一起使用

    cat file1 从第一个字节开始正向查看文件的内容

    cat -n file1 标示文件的行数

    cat xxx.txt awk ‘NR%2==1’

    tac file1 从最后一行开始反向查看一个文件的内容

    more file1 查看一个长文件的内容

    less file1 类似 more 命令,但允许方向操作

    head -n 2 file1 查看一个文件的前两行

    tail -f /log/msg 实时查看添加到⽂件中的内容

    tail -n 2 file1 查看一个文件的最后两行

    tail -n +1000 file1 从1000行开始显示,显示1000行以后的

    cat filename | head -n 3000 | tail -n +1000 显示1000行到3000行

    cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000(即显示3000~3999行)

    grep ss hello.txt 在⽂件hello.txt中查找关键词 ss

    grep ^s hello.txt 在⽂件hello.txt中查找以 s 开头的内容

    grep [0-9] hello.txt 选择hello.txt⽂件中所有包含数字的⾏

    sed 's/ss/mm/g' hello.txt 将hello.txt⽂件中的 ss 替换成 mm

    sed '/^$/d' hello.txt 从hello.txt⽂件中删除所有空⽩⾏

    sed '/ *#/d; /^$/d' hello.txt 从hello.txt⽂件中删除所有注释和空⽩⾏

    sed -e '1d' hello.txt 从⽂件hello.txt 中排除第⼀⾏

    sed -n '/s1/p' hello.txt 查看只包含关键词"s1"的⾏

    sed -e 's/ *$//' hello.txt 删除每⼀⾏最后的空⽩字符

    sed -e 's/s1//g' hello.txt 从⽂档中只删除词汇s1并保留剩余全部

    sed -n '1,5p;5q' hello.txt 查看从第⼀⾏到第5⾏内容

    sed -n '5p;5q' hello.txt 查看第5⾏

    paste file1 file2 合并两个⽂件或两栏的内容

    paste -d '+' file1 file2 合并两个⽂件或两栏的内容,中间⽤"+"区分

    sort file1 file2 排序两个⽂件的内容

    sort file1 file2 uniq

    sort file1 file2 uniq -u

    sort file1 file2 uniq -d

    comm -1 file1 file2 ⽐较两个⽂件的内容(去除’file1’所含内容)

    comm -2 file1 file2 ⽐较两个⽂件的内容(去除’file2’所含内容)

    comm -3 file1 file2 ⽐较两个⽂件的内容(去除两⽂件共有部分)

3、.DS_Store 是什么文件

.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。

相当于 Windows 下的 desktop.ini。

Git泄露

Log

一、wp

看题目,很明显是git泄露

用dirsearch一扫,确实是git泄露

使用 GitHack 工具 clone 目标源代码到本地

相关文件被储存到了最后一行的地方,然后我们进入dist/challenge-037e8b2de8d972bf.sandbox.ctfhub.com_10800中

打开终端,执行 git log 查看历史记录

发现add flag这次提交很可疑,

<法1>

直接与 add flag 这次提交进行比对(写前几个字符就行),  

git diff 460a

出flag

<法2>

直接切换到 add flag (460a) 这个版本,  

git reset --hard 460a

这个命令可以切换为之前的版本,输入完成后最后一个文件夹下会多出一个.txt文件,打开后就有flag。

二、题目考点

1、git泄露

2、查看历史记录 git log

3、切换版本 git reset

4、对比两次提交 (查看变更内容)git diff

三、相关知识

1、git教程(点此链接进行了解)

Web安全常用工具 (持续更新)-CSDN博客

2、git log详解 (log日志)

git log 可以让我们查看提交commit history,接下来我们来一起探索git log提供的参数。

1) --oneline

这个命令简化git log的默认的输出,仅仅输出commit hash 前7个字符串(不显示一大堆)和commit message.

git log默认会输出commit hash(提交对象的哈希值), author(提交人), date(提交时间), commit message(提交说明).

2) --stat

--stat:是在git log 的基础上输出文件增删改的统计数据。

3) -p

-p:控制输出每个commit具体修改的内容,输出的形式以diff的形式给出。

4 )git show

git show命令同git log -p输出类似,只不过它只显示一个commit的内容,如果不指定commit hash, 它默认输出HEAD指向commit的内容.

5 )git shortlog

这个命令用来输出汇总信息,以作者进行分类。

git shortlog -s:可以用来统计每个作者的commit数量

git shortlog -n:可以用来对统计的量进行倒序排列

6 )--pretty

我们可以用–pretty来自定义输出的信息

8 )限定log输出

直接在log命令之后,加 -n参数即可,n表示你要输出的数量.

9) 限定指定日期范围的log

--after--before

10 )控制是否显示merge的commit

--merges或者--no-merges

11) --decoreate

该参数用来控制log输出时,显示对应commit所属的branch和tag信息

3、GitHack的使用

(具体内容点击此链接)

Web安全常用工具 (持续更新)-CSDN博客

Stash

一、wp

 不用dirsearch扫也可以看出是git泄露

直接用GitHack扫描,具体方式同上题

发现已经Clone success

题目是stash,优先考虑git的stash命令

执行git stash list :查看stash了哪些存储;

执行git stash pop:恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0}

出文件了,可以直接cat,也可去打开文件

出flag

二、考点

  • stash 用于保存 git 工作状态到 git 栈,在需要的时候再恢复。

三、相关知识

git stash详解(Stash 翻译为藏匿,隐藏)

1、git stash命令是干甚的

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;执行完这个命令后,在运行 git status 命令,就会发现当前是一个干净的工作区,没有任何改动。注:git stash 是本地的,不会上传到服务器上。

简单来说, git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复。

2、使用场景

由上点可推断出git stash的使用场景:

当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,可以先将自己写好的代码,储存到 git 栈,进行另外一个分支的代码开发。这时候 git stash 命令就派上用场了!

3、使用

1)git stash的相关命令

<1>git stash

        保存当前的工作区与暂存区的状态,把当前的修改的保存到git 栈,等以后需要的时候再恢复,git stash 这个命令可以多次使用,每次使用都会新加一个stash@{num},num是编号

<2>git stash save '注释'

        作⽤等同于git stash,区别是可以加⼀些注释, 执⾏存储时,添加注释,⽅便查找,例如git stash save 'test'

<3>git stash pop

        默认恢复git栈中最新的一个stash@{num},建议在git栈中只有一条的时候使用,以免混乱                   

        注:该命令将堆栈中最新保存的内容删除

(即恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,就是stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1})   

<4>git stash list

        查看当前stash的所有内容

<5>git stash apply

        将堆栈中的内容恢复到当前分支下。这个命令不同于 git stash pop。该命令不会将内容从对堆栈中删除,也就是该命令能够将堆栈的内容多次运用到工作目录,适合用与多个分支的场景

        使用方法:git stash apply stash@{$num}

<6>git stash drop

        从堆栈中移除指定的stash

        使用方法:git stash drop stash@{$num}

<7>git stash clear

        移除全部的stash

<8>git stash show

     查看堆栈中最新保存的stash和当前⽬录的差异,显⽰做了哪些改动,默认show第一个存储

2)使用流程

 <1>执行 `git stash`

<2>查看刚才保存的工作进度 `git stash list` (一般先使用 git stash list 查看有没有已经 stash 的记录,避免和自己的混淆,到时候使用时不知道是哪条记录)

保存注释的长这样:

 可以看到 stash@{0} 是刚才保存的

<3> 这时候在看分支已经是干净无修改的(改动都有暂存到 stash)

<4> 现在就可以正常切换到目标分支,进行相应操作(假设要操作master分支)

<5> 其他分支处理完成,再切回来使用刚才的 stash, 还是先查看 暂缓列表

<6> 选择使用暂缓 `git stash apply n`

注:n 是序号,如下图红色箭头指示

这时就看到刚才保存的工作进度,已经原样恢复~大功告成!

Index

一、wp(基本同上)

用dirsearch一扫,发现git泄露(不用扫也可以)

再用GitHack扫

到相应的文件夹,发现直接就有txt文件,打开,出flag

二、相关知识

Index :索引

SVN泄露

一、wp

根据题目,显然是SVN泄露(其实应该先用dirsearch先扫的,这才是一个完整的流程)

扫描发现有 .svn/ 目录,确认是 .svn 泄露(假设已经扫过了)。

进入dvcs-ripper所在目录,使用 dvcs-ripper 中的 rip-svn.pl 脚本进行 clone,将泄露的文件下载到本地目录中。(注:要先安装工具所需依赖库)

<法1>这里由于是隐藏的,所以我们利用tree命令,用tree .svn的命令查看.svn中的历史。(注:使用svn checkout后,项目目录下会生成隐藏的.svn文件夹,Linux上用ls命令看不到,要用ls -al命令,所以这里也可以用ls -al命令,但没tree命令看的清晰)

网页提示说flag在服务端旧版本的源代码中,那么应该检查一下pristine文件是否存放flag

寻找 .svn/pristine/ 中的文件,

先找bf中的,发现是源代码,再找de中的,发现flag

<法2> 也可以用ctrl+H显示隐藏文件夹,出现.svn文件夹

也找到pristine文件夹(tree命令可以显得更清晰点,或许可以帮到忙)

照常找到flag。

二、题目考点

svn 目录结构

三、相关知识

1、svn

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

集中式管理的工作流程如下图:

Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。

相比而下,经典的git开发过程:

2、svn与git

由上两图,我们推广出SVN和Git的区别:

1)SVN属于集中化的版本控制系统,有个不太精确的比喻:SVN = 版本控制+ 备份服务器

SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。

Git是一个分布式版本控制系统,操作命令包括:clone,pull,push,branch ,merge ,push,rebase,Git擅长的是程序代码的版本化管理。

2)GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。

3)GIT把内容按元数据方式存储,而SVN是按文件

所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

4)分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。

5)GIT没有一个全局的版本号,而SVN有

目前为止这是跟SVN相比GIT缺少的最大的一个特征。你也知道,SVN的版本号实际是任何一个相应时间的源代码快照。我认为它是从CVS进化到SVN的最大的一个突破。因为GIT和SVN从概念上就不同,我不知道GIT里是什么特征与之对应。

6)GIT的内容完整性要优于SVN:

GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

3、dvcs-ripper工具的使用

1)运行示例(适用于 SVN):

./rip-svn.pl -v -u http://www.example.com/.svn/

It will automatically do svn revert -R .

它会自动执行 svn revert -R .

2)注意事项

使用svn checkout后,项目目录下会生成隐藏的.svn文件夹(Linux上用ls命令看不到,要用ls -al命令)。

svn1.6及以前版本会在项目的每个文件夹下都生成一个.svn文件夹,里面包含了所有文件的备份,文件名为 .svn/text-base/文件名.svn-base

svn1.7及以后版本则只在项目根目录生成一个.svn文件夹,里面的pristine文件夹里包含了整个项目的所有文件备份

具体内容请点此链接:Web安全常用工具 (持续更新)-CSDN博客

4、Linux常用的文件查看命令:

1)cat :由第一行开始显示文件内容;

2)tac:从最后一行开始显示,可以看出tac与cat字母顺序相反;

3)nl:显示的时候输出行号;

4)more:一页一页的显示文件内容;

5)less与more类似,但它可以向前翻页;

6)head:只看前几行;

7)tail:只看最后几行;

8)od:以二进制的方式读取文件;

9)vi/vim:文本编辑器,也可以打开文件查看内容,这个是使用最为广泛的工具

HG泄露

一、wp

这里提示我们用HG,还是使用dvcs-ripper,这次使用rip-hg.pl脚本进行 clone。(这里出了一个小错误,使用工具时并不是官方文档中说的rip-hg.pl,而是./rip-hg.pl,以后一定亲自动手,光复制容易迷糊)

发现直接执行 hg status 出错,工具 clone 的时候并没有 clone 完整。不要过分迷信工具。

使用tree命令列出刚刚下载的.hg网站目录

看到一个.txt,打开看看,发现历史版本add flag,感觉没啥用

利用正则匹配找一下flag(使用正则表达式进行关键字查找,具体方法见下图),也可以在这个文件夹下一个一个找,但这样低效;还可以和上一题一样直接在文件夹里找,但也太麻烦;

结合题目提示,不太好使的情况下, 试着手工解决,在浏览器里输入这个flag文件(这里就直接用curl了);

出flag

上图太小了,又重新截了一张,下图是上图的放大版

二、题目考点

.hg 文件结构

Mercurial 的使用

三、相关知识

1、HG泄露漏洞

            Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。

        在 Mercurial 轻量级分布式版本控制系统中,本地既可以当做版本库的服务端,也可以当做版本库的客户端。版本库与工作目录不同,版本库存放了所有版本,而工作目录只是因为特定需要存放特定版本。与 SVN 系统不同,SVN 的版本库集中在一台服务器中。这也导致很多初次使用 Mercurial 系统的工作者,因为操作失误导致出现 HG 泄露漏洞的主要原因。

2、dvcs-ripper的使用

具体内容点击此链接:Web安全常用工具 (持续更新)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值