git reset --hard HEAD^
// 在git中
// HEAD表示当前版本
// HEAD^表示上一个版本
或者使用更简单的方法,使用git log -stat
命令查看每次提交修改了哪些文件,再用git diff HEAD commit-id
比较在当前版本与想查看的版本之间的变化。
- git分支
在每次提交时,git都会自动串成一条时间线,也就是一个分支。git允许使用多个分支,从而把工作从开发主线上分离出来。如果说有一个分支,则会默认为master
分支。
切换不同的分支,使用git log
查找当前分支上的修改。
GitHack是一个 .git 文件夹泄漏的利用工具,从 .git 文件夹重建源代码,同时保持目录结构不变。
工作原理:
- 解析
.git/index
文件,找到工程中所有的: ( 文件名,文件sha1 ) - 去
.git/objects/
文件夹下下载对应的文件 zlib
解压文件,按原始的目录结构写入源代码
使用方法:
python2 GitHacker.py http://xxx.com/.git/
下载的文件以URL为命名的文件夹中(以一道git泄露题为例):
进入文件夹,执行git log --all
或者git branch -v
命令,可以看到master
分支的信息
执行git reflog
命令,可以看到一些checkout
的记录
-
git泄露的其他利用
除了查看源码的常见利用方式,泄露的git中也可能有其他有用的信息。 如.git/config
文件夹中可能包含有accesstoken
信息,从而访问这个用户的其他仓库。
-
实例
-
原理
SVN(subversion)是源代码版本管理软件。造成漏洞的主要原因是管理员操作不规范,将隐藏的SVN隐藏文件夹暴露于外网环境中。可以利用.svn/entries
或wc.db
文件获取服务群源码等信息。
-
版本特征
在<1.6
的版本中,文件会先去读取entries
文件中的目录结构,默认文件名是明文存储。
在>1.6
的版本中,文件名会被hash处理,然后按照文件名对应的hash方式存储到wc.db
中(sqlite数据库)。
-
利用工具:SvnExploit、dvcs-ripper
-
实例:CTFHub技能树 Web-信息泄露 SVN泄露
-
防范:在网站部署时,过滤删除.svn
文件
-
原理
在初始化项目时,HG会在当前文件夹创建一个.hg
隐藏文件夹,包含代码和分支修改记录等。当开发人员使用Mercurial进行版本控制,对站点自动部署。如果配置不当,可能会将.hg
文件夹直接部署到线上环境。
-
利用工具:dvcs-ripper
-
实例:CTFHub技能树 Web-信息泄露 HG泄露
通过敏感的备份文件,通常能获取到部分页面源码
-
原理
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了web目录下,就会引起网站源码泄露。
-
利用
tar.gz
website
backup
wwwroot
- 实例
CTFHub技能树 Web-信息泄露 网站源码
-
原理
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,并将其进行备份,将其命名为xxx.bak
。而大部分Web Server对*.bak
文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码。
-
利用
直接浏览器访问/xxx.bak
,即可获取到备份文件。
-
实例
CTFHub技能树 Web-信息泄露 bak文件
- 产生原因
在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为~
的文件,其文件内容就是刚编辑的内容。 - 利用
通过浏览器访问这个带有~
的文件,便可以得到原文件内容。
- 产生原因
当用户在编辑文件但意外退出时,会在当前目录下生成一个备份文件,文件名格式为:.文件名.swp
该文件用来备份缓冲区中的内容,即退出时的文件内容。
其第一次意外退出生成的备份文件为:*.swp
,第二次意外退出时为*.swo
,第三次退出时为*.swn
等。 - 利用
针对swp
文件,可以利用vim -r
命令恢复文件的内容:
- 实例
CTFHub技能树 Web-信息泄露 vim缓存
常规文件依靠的是字典的饱和性,还有一些经典的文件:
robots.txt
告诉搜索引擎那些内容会被获取,通常可以找到一些隐藏页面readme.md
通常记录CMS版本信息,网站部署方法,网站作者等信息
- 可能包含的信息
- 建立连接后可以直接获取Banner
- 根据特征行为和响应字段获取Banner
- 不同的响应也可以用于识别底层操作系统
- 注意
Banner信息不一定准确,因为管理员可能会隐藏或修改它,以此提高系统安全性。
说明可能存在.swp备份文件,正常URL:xxx/index.php
则尝试URL:xxx/index.php.swp下载.swp文件代码
并使用vim打开,打开命令:vim -r index.php.swp
打开后则发现源码,进行代码审计
admin是administer的缩写,也就是说,它是一个管理员账号,对于每一台电脑ip来说,它都有一个administer账号,这个账号拥有着管理电脑的最高权限,也被叫做系统管理员。SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。接着我们访问index.phps文件,发现跳转的正是当前页面,因此猜测成立!,然后再URL后添加/www.zip对网站主页源码进行下载,然后进行解压。查看源代码,查看js文件,查看flag的条件,去通过uncode解码。
一、vim备份文件 默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看; eg:index.php普遍意义上的首页,输入域名不一定会显示。 它的备份文件则为index.php~二、vim临时文件 vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是submit,则它的临时文件submit.swp...
CTF信息泄露
当我们访问web页面时,常常会出现相关的个人信息,比如邮箱、电话、地址等等。在CTF的比赛中,出题人可能会故意留给我们一些重要信息,多见于cookie、源代码、请求头、响应头中。
CTF文件泄露
扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。
常见扫描器—Dirsearch:dirsearch是一个py
网站信息搜集概述GitHackDirSearch总结
我个人自学web已经有了一段时间了,但总感觉少了些什么,从做题角度上来讲,遇到的web题要么是直接给了源码需要审计的,要么是会给足够的提示,让你知道是考察注入还是文件上传等。那么如果不给源码,不给提示呢,我们面对一个功能众多的网站该如何下手?此时就需要这一章的内容,我愿称其为web学习中灵魂的章节。
接下来我将根据做题的积累,介绍下ctf中常用的一些信息搜集思路和工具。
GitHack
GitHack
现在的开发人员使用git进行版
CTFHub - vim缓存(备份文件)
用户在使用vim进行编辑的时候,以为意外退出时,会在当前目录生成一个备份文件,文件名格式为: .名字.swp
第一次意外退出生成 *.swp
第二次意外退出生成 *.swo
第三次意外退出生成 *.swn
提示flag在index.php源码中,套用 (.名字.swp) 格式 在网址后加上 .index.php.swp
http://challenge-e780a54fb59810ff.sandbox.ctfhub.com:10080/.index
vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是data,那么swp文件名就是.data.swp。如果文件正常退出,则此文件自动删除。以下两种情况不会删除swp文件:
1、Vim非正常退出,这种情况下,除非手动删除swp文件(也可以在vim提示时删除),否则它会一直存在。
2、多个程序同时编辑一个文件。
可用vim带-r参数编辑
#vim -r data
原题内容:找回密码格式:SimCTF{ }解题链接:http://ctf5.shiyanbar.com/10/upload/(略过查看源代码等最基本的步骤)首先首页让你输入注册邮箱找回密码,尝试admin,有弹窗显示消息: 复制提示信息至地址栏:发现可以看到step2的内容然后瞬间变成step1内容,打开bp准备逐步查看,获取step2页面内容: 代码中被选中的这一行很有意思,告诉了你编辑器是v...
根据题目启动环境:
可知是vim缓存,利用vim缓存知识:
使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除。vim异常退出后,因为未处理缓存文件不会被删除,可以通过缓存文件恢复原始文件内容以 index.php 为例:
第一次vim会创建缓存的交换文件名为 .index.php.swp,
再次意外退出后,将会产生名为 .index.php.swo 的交换文件,
第三次产生的交换文件则为 .index.php.swn。
所以利用:.index.php.swp查看目录
得到ind
之前在实验吧做过两个单一的题目,把那两个题目合一下,就形成了这个题。
首先界面是空白的,什么信息都没有, 通过常见的信息收集没有太多的,目录扫描也没有什么有用的东西。卡了很一会,才想到.swp文件泄露,直接访问。
下载下来后,用vim -r恢复后,查看源码。
$flag = "XXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXX...
提醒.dummy.txt.swp已经存在。
这是因为另一个vim进程正在打开该文件,如果再打开一个vim进程,两个vim实例同时修改同一文件,将可能产生数据丢失或冲突。因此向编辑者给出该提示。
vim swp是什么
如Vim documentation: recover所说,vim将用户对被编辑的文件做出的修改,保存在一个swap文件中。当异常退出后,想从swap文件中恢复时,则在上图时可按R进行恢复。