前言
githack使用跳转Blog:https://gryffinbit.top/2022/08/24/githack%E5%8E%9F%E7%90%86%E5%8F%8A%E5%BA%94%E7%94%A8/
svnhack使用跳转Blog:https://gryffinbit.top/2022/08/24/svnhack%E5%8E%9F%E7%90%86%E5%8F%8A%E5%BA%94%E7%94%A8/
敏感信息
robots.txt
是什么:
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
作用:
- 引导搜索引擎蜘蛛抓取指定栏目或内容
- 网站改版或者URL重写优化时候屏蔽对搜索引擎的不友好的链接
- 屏蔽死链接、404错误页
- 屏蔽无内容、无价值页面
- 屏蔽重复页面,如评论页、搜索结果页
- 引导蜘蛛抓取网站地图
crossdomain.xml
是什么
跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。
作用
打个比方说,公司A部门有一台公共的电脑,里面存放着一些资料文件,专门供A部门内成员自己使用,这样,A部门内的员工就可以访问该电脑,其他部门人员则不允许访问。A部门的员工可以任意访问A部门的公共电脑,但是不能直接访问B部门的公共电脑。有一天,B部门领导觉得他们的资料非常有用,想要与A部门分享,于是就给A部门一个令牌,这样A部门的员工也可以访问B部门的公共电脑了。A部门可访问B部门设置访问权限,这个权限设置就是跨域策略文件crossdomain.xml存在的意义。
sitemap.xml
是什么
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件
作用
在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
以下是由于版本控制导致的文件泄露
.git源代码泄露
是什么
在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
怎么用
利用工具:GitHack
项目地址:https://github.com/BugScanTeam/GitHack
.cvs源代码泄露
是什么
CSV是一个C/S系统,多个开发人员通过中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
作用
主要是针对CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
返回根信息:http://www.example.com/CVS/Root
返回所有文件的结构:http://www.example.com/CVS/Entries
怎么用
漏洞利用工具:dvcs-ripper
项目地址:https://github.com/kost/dvcs-ripper.git
运行示例:
1 | rip-cvs.pl -v -u http://www.example.com/CVS |
.svn源代码泄露
是什么
SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要地方源代码信息。
作用
网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露在外网环境,可以使用.svn/entries文件,获取到服务器源码。
怎么用
Seay SVN漏洞利用工具
SvnExploit
.hg源代码泄露
是什么
Mercurial是一种轻量级分布式版本控制系统,使用hg init的时候会生成.hg。
怎么用
漏洞利用工具:dvcs-ripper
项目地址:https://github.com/kost/dvcs-ripper.git
运行示例:
1 | rip-cvs.pl -v -u http://www.example.com/.hg/ |
.DS_store文件泄露
是什么
.DS_store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。
作用
如果将.DS_store上传部署到服务器,可能造成文件目录结构泄露,特别是备份文件、源代码文件。
怎么用
漏洞利用工具:ds_store_exp
项目地址:https://github.com/lijiejie/ds_store_exp
运行示例:
1 | ds_store_exp.py http://xxx.com/.DS_Store |
网站备份文件泄露
管理员将网站源代码备份在Web目录下,攻击者通过猜解文件路径,下载备份文件,导致源代码泄露。常见的备份文件后缀:.rar
、.zip
、.7z
、.tar.gz
、.bak
、.txt
、.old
、.temp
SWP文件泄露
swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为.filename.swp。
WEB-INF/web.xml泄露
是什么
WEB-INF是Java的Web应用的安全目录
WEB-INF主要包含以下文件或目录:
- WEB-INF/web.xml:Web应用程序配置文件,描述了servlet和其他的应用组件及命名规则
- WEB-INF/database.properties:数据库配置文件
- WEB-INF/classes/:一般用来存放Java类文件(.class)
- WEB-INF/lib/:用来存放打包好的库(.jar)
- WEB-INF/src/:用来存放源代码
作用
如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
通过找到 web.xml 文件,推断 class 文件的路径,最后直接下载 class 文件,再通过反编译 class 文件,得到网站源码。
敏感目录收集方式
网页中寻找
- 在robots.txt中看能否发现敏感目录
- F12源代码链接处
- 通过查看一些图片的属性路径,运气好会发现很多隐藏的目录
- 结合域名+目录,
- 用目录扫描工具进行扫描
- 手动输入一些常见的后台管理地址进行访问。
其他端口中寻找
有时候网站的不同端口中有一些便是专门的后台管理地址。根据经验总结,很多网站8080、8081端口是网站的管理地址。
例如:http://www.xxx.com:8080
网站分目录下寻找
有的时候网站会把管理地址放在一个分目录下,有的时候一个网站比较大,后台管理页面也比较多,就要分目录的去找,
例如:http://www.xxx.com/test/admin/manage.php
你可以通过一些方式获取到网站的目录,然后在这个目录下进行扫描。当一个网站你扫描根目录没有任何收获时,这个时候通过分析网站的目录结构,然后扫描域名+目录,就能找出它的后台管理地址。
子域名下寻找
有的时候网站的管理地址会放在子域名下,所以主站什么都找不到的情况下,如果发现子域名,就通过这些方法去子域名下找一下吧。
例如:http://admin.xxx.com/login
Google Hacking
Google Hacking 一般是做为黑客在入侵时的一个手段。在入侵过程中有时需要查找后台的登陆口就需要用到Google Hacking。有时猜解密码的时候谷歌也是提供查找管理员资料的有效平台。是一种社会工程学获取目标信息的手段。可以用于跟踪某对象在网络上的各种踪迹(如交友平台、微博等)。
Google hacking 语法自行学习
网站爬虫
通过awvs,burpsuite的爬行功能,可以拓扑出网站的目录结构,有的时候运气好能在网页的目录结构中找到好东西,不过爬行一般会结合工具扫描,比如你构造域名+目录,然后扫描这个。
burp spider爬行
扫描工具
御剑 :针对网站目录及后台管理地址进行扫描的工具
dirbuster:探测Web服务器目录及隐藏文件,擅长暴力猜解
wwwscan:网站后台扫描工具
dirb:kali内置工具,基于字典的web目录扫描工具,用递归的方式来获取更多的目录,支持代理和http认证限制访问的网站
1
dirb http://www.baidu.com
dirmap:高级web目录扫描工具。项目的地址 https://github.com/H4ckForJob/dirmap
Cansina:用python写的一款探测网站的敏感目录和内容的安全测试工具。项目地址 https://github.com/deibit/cansina
dirsearch:扫描网站的敏感文件和目录从而找到突破口。 项目地址:https://github.com/maurosoria/dirsearch/
weakfilescan:基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具
状态码
状态码分为五组
- 1xx 信息响应。 收到并理解的请求。 请求处理将继续。
- 2xx 成功。 已成功接收、理解和接受该操作。
- 3xx 重定向。 客户端必须采取进一步操作才能完成请求。
- 4xx 客户端错误。 可能是客户端导致的错误。 请求包含错误的语法或无法实现。
- 5xx 服务器错误。 服务器遇到错误,无法满足请求。
常见状态码
状态代码 200 这是成功 HTTP 请求的标准”确定”状态代码。
状态代码301 资源(网页等)被永久转移到其它URL【永久重定向】
状态代码302 资源(网页等)被临时转移到其它URL【临时重定向】
状态代码 400 服务器由于客户端错误而无法理解和处理请求。 【客户端发送请求语法错误】
状态代码 401 当需要身份验证但失败或未提供身份验证时,将发生此状态代码请求。
状态代码 403 与状态代码 401 非常相似,状态代码 403 在发送有效请求时发生,但服务器拒绝接受。 如果客户端/用户需要必要的权限,或者他们可能需要帐户来访问资源,则会发生这种情况。 与状态代码 401 不同,身份验证将不适用于此处。
状态代码 404 普通用户将看到的最常见状态代码。 当请求有效,但无法在服务器上找到资源时,将发生状态代码 404。
状态代码 500 是真正的错误代码。 当服务器由于意外问题无法完成请求时,将发生状态代码 500。【服务器内部错误】
状态代码 502 网关错误。服务器作为网关并且从上游服务器获取到了一个无效的http响应