Nu1L战队官网:https://nu1l.com
“空指针”高质量挑战赛:https://www.npointer.cn
N1BOOK:https://book.nu1l.com
信息收集
敏感目录泄露
git泄露
常规泄露 https://github.com/denny0223/scrabble
git回滚
(flag在老的提交版本中)
先利用scrabble工具获取源码,再通过git reset--hard HEAD^
命令跳到上一版本,除了使用git reset
,更简单的方式是通过git log-stat
命令查看每个commit修改了哪些文件,再用git diff HEAD commit-id
比较在当前版本与想查看的commit之间的变化。
git分支
https://github.com/WangYihang/GitHacker
python GitHacker.py http://127.0.0.1:8000/.git/
,本地看到生成的文件夹,进入后执行git log--all
或git branch-v
命令,只能看到master分支的信息。如果执行git reflog
命令,就可以看到一些checkout的记录,除了master还有一个secret分支,但自动化工具只还原了master分支的信息,因此需要手动下载secret分支的head信息,保存到.git/refs/heads/secret中。
执行命令wget http://127.0.0.1:8000/.git/refs/heads/secret
修改GitHacker
if __name__ == '__main__':
baseurl = complete_url('')
temppath = replace_bad_chars(get_prefix(baseurl))
fixmissing(baseurl,temppath)
git泄露的其他利用
除了查看源码的常见利用方式,泄露的git中也可能有其他有用的信息,如.git/config文件夹中可能含有access_token信息,从而可以访问这个用户的其他仓库。
SVN泄露
https://github.com/kost/dvcs-ripper
Seay-svn
SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范将SVN隐藏文件夹暴露于外网环境,可以利用.svn/entries或wc.db文件获取服务器源码等信息。
HG泄露
在初始化项目时,HG会在当前文件夹下创建一个.hg隐藏文件夹,其中包含代码和分支修改记录等信息。
https://github.com/kost/dvcs-ripper
总结经验
不论是.git这些隐藏文件,还是实战中的admin之类的敏感后台文件夹,其关键在于字典的强大,读者可以在某些工具的基础上进行二次开发,以满足自己需要。
https://github.com/maurosoria/dirsearch
CTF线上比赛往往会有重定向一类问题。例如,只要访问.git,便会返回403,此时试探着访问.git/config,如果有文件内容返回,就说明存在git泄露,反之,一般不存在。而在SVN泄露中,一般是在entries中爬取源代码,但有时会出现entries为空的情况,这时注意wc.db文件存在与否,便可通过其中的checksum在pristine文件夹中获取源代码。
敏感备份文件
gedit备份文件
在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为“~”的文件,其文件内容就是刚编辑的内容。通过浏览器访问这个带有“~”的文件,便可以得到源代码。
vim备份文件
当用户在编辑文件但意外退出时,会在当前目录下生成一个备份文件,文件名格式为:.文件名.swp,该文件用来备份缓冲区中的内容即退出时的文件内容。
针对SWP备份文件,我们可以用vim -r
命令恢复文件的内容。
vim在第一次意外退出时生成的备份文件为.swp,第二次意外退出时的为.swo,第三次退出时的为*.swn,以此类推。
常规文件
常规文件所依靠的无非就是字典的饱和性,不论是CTF比赛中还是现实世界中,我们都会碰到一些经典的有辨识的文件,从而让我们更好地了解网站。
❖ robots.txt:记录一些目录和CMS版本信息。
❖ readme.md:记录CMS版本信息,有的甚至有Github地址。
❖ www.zip/rar/tar.gz:往往是网站的源码备份。
Banner识别
1.Github上成型扫描器对网站进行识别
2.Wappalyzer
网友评论