实景 敏感文件 泄露
常见敏感文件或目录
敏感文件、敏感目录挖掘一般都是靠工具、脚本来找,比如御剑、dirsearch,当然大佬手工也能找得到。
robots.txt
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
意义:告知浏览器哪些信息为本站点的敏感路径,(防止)不应被爬虫。
CTF意义:敏感路径泄露。
-- 典型防君子不防小人。
crossdomain.xml
跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。
重点查看 "allow-acess-form" 字段获取网站目录信息。
GoogleHacking语法:
inurl:crossdomain filetype:xml intext:allow-access-from
实例:https://myspace.com/crossdomain.xml
sitemap.xml
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是 XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
但错误配置会导致 严重安全漏洞。
GoogleHacking语法:
inurl:sitemap filetype:xml
实例:https://openai.com/sitemap.xml
利用方式详见本文: xxx
源代码泄露
github
开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息,查看是否有程序员将这些信息上传到了github上。
如公司的域名如下:niniub.com;则可以在github上用这个信息去进行搜索,看看是否有包含该类关键字的文件。这类安全漏洞只能靠人员的安全意识进行防护,没有其它方法进行。
GitHub 当前已禁止 password 字段的查询敏感信息。 site:Github.com smtp site:Github.com smtp @qq.com site:Github.com smtp @126.com site:Github.com smtp @163.com site:Github.com smtp @sina.com.cn site:Github.com smtp password site:Github.com sa password site:Github.com root password site:Github.com User ID='sa';Password site:Github.com svn site:Github.com svn username site:Github.com svn password site:Github.com svn username password site:Github.com inurl:sql site:Github.com password site:Github.com ftp ftppassword site:Github.com 密码 site:Github.com 内部
.git
成因及危害:当前大量开发人员使用git进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了git泄露漏洞。在网站安全维护方面,git和svn信息泄露,是非常常见也是非常致命的漏洞。会导致整个网站的源码泄露。
渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注入等web安全漏洞。
防护方法:在部署的时候,对.git文件夹进行删除;也可以在nginx配置中,对.git目录的访问进行屏蔽。
GoogleHacking语法:
intitle:"index of ·git"
GitHack:https://github.com/lijiejie/GitHack
// GitHack是个·git泄露利用脚本,通过泄露的·git文件夹下的文件,重建还原工程源代码。
利用 .git 泄露漏洞需泄露文件夹中必须包含 index 文件,因为是通过此文件来进行还原工程的。
.svn
跟git一样,都是用来版本迭代的一个功能。具体一点就是使用svn checkout功能来更新代码。
如果没有将.svn版本控制的目录进行删除,恶意用户就可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。
防护:在部署的时候,将该文件进行删除。
GoogleHacking语法:
intitle:"index of .svn"
svnExploit: https://github.com/admintony/svnExploit
.DS_store
.hg
.bzr
cvs
WEB-INF/web.xml
WEB-INF是Java的Web应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
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 文件,推断 class 文件的路径,最后直接下载 class 文件,再通过反编译 class 文件,得到网站源码。
网站备份文件(.rar、.zip、.7z、.tar、.gz、.tar.gz、.bak、.txt、.old、.temp)
phpinfo
vim编辑器备份文件(.swp)
意义:Vim 编辑器 在编辑文件时生成的交换文件(Swap file),用于保存编辑中的文件内容和编辑历史。它的作用是提供一种“恢复机制”,以防 Vim 编辑器或系统异常退出时丢失数据。
CTF意义:当题目中存在 .swp 文件时其中大概率包含了解题相关的敏感信息,可能是账户密码也可能是其他解题文件名泄露。
-- 需要注意的是, .swp 文件有一个通识的误区即会认为只有当用户编辑文件异常退出的时候才会生成 .swp 文件,实则不是的,用户正常退出,系统也会定时生成 .swp 文件。
-- "文件的生成并不仅仅是因为异常退出。即使正常退出,Vim 也会定期更新
.swp
文件,用于提供恢复的可能性。"
泄露敏感目录
网站安装目录
网站上传目录
mysql管理页面
敏感目录收集方式
网页中寻找
在robots.txt中看能否发现敏感目录。
F12源代码链接处。
通过查看一些图片的属性路径,运气好会发现很多隐藏的目录。
结合域名+目录,用御剑进行扫描。
手动输入一些常见的后台管理地址进行访问。
其他端口中寻找
有时候网站的不同端口中有一些便是专门的后台管理地址。
shi'li:http://www.xxx.com:8080
网站分目录下寻找
有的时候网站会把管理地址放在一个分目录下,有的时候一个网站比较大,后台管理页面也比较多,就要分目录的去找。
示例:http://www.xxx.com/test/admin/manage.php
子域名下寻找
有的时候网站的管理地址会放在子域名下,所以主站什么都找不到的情况下,如果发现子域名,就通过这些方法去子域名下找一下吧。
示例:http://admin.xxx.com/login
目录爆破