目录
一.目录扫描
1.什么是目录扫描
2.本地文件包含LFI漏洞
3.常见敏感目录和文件
4.文件扫描思路
5.文件扫描字典
6.文件扫描工具
7.防御
二.Git信息收集
1.什么是版本控制系统
2.Git工作区划分
3.Git信息泄露原理
4.Git信息泄露利用方式
.git中有用的内容有哪些:
5.Github搜索技巧
6.Git仓库利用流程和工具
怎么找.git文件
将.git下载下来
下载后用git命令获取内容
自动化进行下载和获取内容的工具
7.案例演示
一.目录扫描
1.什么是目录扫描
部署的网站有一些敏感文件:配置文件(xxx.config),数据文件(xxx.sql),特殊目录(/backup,/config,/admin)
这些文件不应该被访问,但因为网站配置错误,被有心人利用了
会泄露哪些信息:数据库用户名和密码,服务器的用户名和密码,数据库文件
2.本地文件包含LFI漏洞
为什么泄露:
1.本地文件包含:local file inclusion(LFI)
为什么会出现本地文件包含:在php中,有一些公共文件时通用的,引用了include,require函数
如果include没有做限制,那么可能所有的文件都会被include给泄露出来
3.常见敏感目录和文件
知道哪些文件有作用才知道要找什么文件
1.robots.txt
不同的系统robots.txt的语法不同
或者说哪些文件不让爬虫访问,就说明这些文件可能就是比较重要的文件
4.文件扫描思路
直接在域名后面拼接路劲/文件名,如果返回200,就是存在
扫描方法:
1.递归:dir xxx 如果是文件夹,就访问文件夹下的内容
2.字典:依赖于制作好的字典
3.暴力破解:ascii 33~126(94位)
4.爬虫模式:
5.fuzz(模糊测试):字典,fuzz更没有规律的字典
5.文件扫描字典
kali中输入
wordlists
查看kali自带字典
6.文件扫描工具
1.dirb(kali自带的)
使用方法:dirb 域名查看使用文档:man dirb
2.kali中图形化工具:dirbuster
在xshell中是用不了,在kali虚拟机中使用
基本上已经过时了,玩玩就好
3.Burp Suite
intruder设置payload后可以进行暴力破解
/$??$
4.其他的一些工具
DirBrute
Dirsearch
Dirmap
wfuzz
注意:当你扫描目标服务器时,会产生大量的http/https服务请求,可能会被对方给拦截/拉黑
解决:不停的换代理,进行绕过;网络空间搜索引擎去找现成结果
7.防御
设置权限:其他用户组不可读
直接删除敏感文件,别放在根目录下
过滤关键字,拦截服务
二.Git信息收集
1.什么是版本控制系统
版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。 用的比较多的如svn,git等。
比如说,客户有个需求,第一版不满意,一直要求改,改到第七版时又说不如就第一版的吧,这时候如果你第一版的没保存就会有大问题。
一个人开发还好,如果是几百个人一起开发,管理起来就不容易
为了让不同系统上的开发者能够协同工作,集中化的版本控制系统应运而生
自动合并不冲突的内容,如果产生了冲突的内容,会标记冲突的内容。
流行的产品:
1.svn工作原理
集中化的vcs
总共就一个仓库,服务器挂了就没了
2.Git
去中心化:分布cvs
每人一个仓库,写好了提交
即使服务器挂了,代码在开发人员的本地库中还保存着
2.Git工作区划分
工作原理:
1.下载git
Git (git-)
2.安装好后
新建文件夹
在文件夹下鼠标右键选择git bash here后弹出git命令行
git的常用命令git init 初始化仓库git add ? 将工作区文件添加到暂存区,对应.git文件夹下的index文件,如图1?可以为 文件名后 . (所有文件)git commit -m "留言" 将暂存区提交到分支中(还在本地仓库中)commit需要提前配置好github的账号git push 仓库名 分支将本地仓库提交到远程仓库
图一:
3.Git信息泄露原理
方便就会带来安全问题,可能出现信息泄露的方式:
1.将私有仓库/隐私文件提交到了Github
2.部署项目的时候,不小心把.git文件一起打包进去,放到web网站下,如.java,.class
4.Git信息泄露利用方式
.git中有用的内容有哪些:
.git/logs/HEAD:存储了git的log信息,可以找到历史的commit信息
.git/index:缓存git add的文件,暂存区
.git/refs/stash:git stash 把代码存入缓存区
.git/refs/heads/master:记录了master的commit的hash(通过利用hash可以将最新版本的所有代码还原出来)
.git/objects/pack/.pack
5.Github搜索技巧
kali in:file 搜索文件中包含kali的代码kali in:path 搜索路径中包含kali的代码kali in:path,file 搜索路径,文件中包含kali的代码filename:config.php language:php 搜索config.php文件,且语言为phpkali topics:>5 标签数量大于5kali size:<1000 文件大小小于1000的(找字典文件)kali stars:10..50 收藏数量在10到50间kali pushed:>-08-25 搜索在8月15号之后的kali create:>=-06-01 创建时间kali pushed:<-01-01 -language:java (-表示不要)
6.Git仓库利用流程和工具
怎么找.git文件
通过目录扫描扫
看robots.txt ,反向去看有没有.git
搜索引擎 intitle:"Index of /.git"
将.git下载下来
工具:(第一个是用的最多的)
BugScanTeam/GitHack: .git 泄漏利用工具,可还原历史版本 ()
lijiejie/GitHack: A `.git` folder disclosure exploit ()
WangYihang/GitHacker: 🕷️ A Git source leak exploit tool that restores the entire Git repository, including data from stash, for white-box auditing and analysis of developers' mind ()
WangWen-Albert/JGitHack ()
下载后用git命令获取内容
git loggit reset --hard[log hash]log hash 在log文件中git diff 比较几个版本的区别
自动化进行下载和获取内容的工具
gakki429/Git_Extract: 提取远程 git 泄露或本地 git 的工具 ()
7.案例演示
ctfhub : 技能树-web-信息泄露-Git泄露
buuctf : 禁止套娃,Mark loves cat