CTF_第二节-漏洞利用之信息泄露
一、信息泄露类型
文件泄露, 根据泄漏的信息敏感程度,在WEB漏洞中可以算是中危甚至高危的漏洞,本篇文章就来介绍下一些常见的泄漏,主要分为由版本管理软件导致的泄露,文件包含导致的泄露和配置错误导致的泄露。
上面的只是前人总结出来的突破点,需要灵活运用,不能过于呆板,比如这个敏感文件泄露。访问http://xxx/www.zip 404怎么办?404就是此路不通,需要重新找思路。
我们的目的,不是秀操作,而是真真实实拿到我们需要的敏感文件,至于从哪个方式、哪个路径拿到,其实不重要的,不管黑猫白猫抓住老鼠就是好猫。
上面的图,只是告诉大家有这些可能,但是不一定信息泄露就一定在上面的这几种情况之中。
二、信息泄露漏洞利用
1、http头信息泄露
这里我们需要区别下 /admin/ 和 /admin 的区别,虽然两者只相差一个斜杠,但是访问的是不同的文件 /admin/ 表示访问的是admin目录,会默认访问目录里面的索引文件,比如index.html或者index.php表示访问admin文件,如果没有这个文件,就直接返回404,不会去寻找索引文件
有些情况下加不加斜杠都能访问到 /admin/ ,是因为配置文件里面进行了设置,这里我们后面会讲
这里还要区别的是路由,目前网站主流都是基于路由的,比如
这里则表示访问的是 /user路由,而不是访问user这个文件,需要根据server头来推断,比如php、asp、/userjsp、aspx、html、shtml这些后缀,是基于文件的。
而那些看起来没有后缀,或者像/user/loginusername=admin&password=123这种形式,则是基于路由的,这个需要多次判断。
- 200 表示正常
- 301 302 表示跳转
- 404 表示文件不存在
- 500 表示服务器内部错误
- 502 表示转发失败 error gatwary
2、报错信息泄露
3、页面信息泄露
4、robots.txt 文件泄露
robots.bxt又称为机器人协议、爬虫协议,主要面向互联网的爬虫,规定哪些内容可以收录哪些内容不能收录,属于防君子不防小人的东西,没有任何强制约束力。一般自诩为正规的搜索引擎爬虫,都会遵守协议,但仍有某些引擎直接无视。
5、.git文件泄露
什么是 .git 文件泄露
.git 是一个版本控制系统
问题的所在
这里的问题就是,多个开发不能并行开发,只能串联开发。也就是开发者张三如果功能没有开发完毕,并提交到服务器之前,开发者李四是没有办法下载最终版本的文件到自己机器上再进一步增加功能的。造成的结果,就是堵塞和低效。
堵塞就是只要有1个人的功能没做完,后面的所有功能都必须暂停,不能开发。低效就是代码不能同时开始,只能一个功能一个功能开发,如果有3个开发人员,那么总会有2个人没事干,在摸鱼,老板白白浪费工资,所以老板很生气。如果项目增大到需要20个开发人员,则会经常有19个开发人员在摸鱼相当于4核CPU轮流处理事务,那么没有轮到的CPU,就资源浪费了。老板更希望是4核CPU同时工作,而不是轮流工作。
本来这样也挺好的,1个人的活,有3个人干,但是好景不长,有老板发现了这个问题,并开发了一个软件,专门解决这个问题,这个软件就是版本控制系统。
于是,利用工具应运而生,专门解析提交记录,来获取提交的文件内容。https://github.com/lijiejie/GitHack
GitHack 是一个.git泄露利用脚本,通过泄露的,git文件夹下的文件,重建还原工程源代码。
渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全洞。
利用工具的原理
- 解析 .git/index 文件,找到工程中所有的:(文件名,文件sha1) 去 .git/objects/ 文件夹下下载对应的文件
zlib解压文件,按原始的目录结构写入源代码
6、搜索引擎收录泄露
7、fofa资产泄露
三、信息泄露总结
招无定式 水无常形
不要拘泥于上面的几种情况,在渗透实战中会有其他更多的姿势。但是目的都是一样的:
尽一切可能多收集对面的信息,收集的越多越好。
在CTF比赛中,信息泄露考点难度普遍较低,不会隐藏特别深,一般有以下几种
- 1.robots.txt 泄露(里面有可疑路径或者敏感文件名称)
- 2.git/svn 泄露(访问.git或者.svn目录出现403)
- 3.页面注释泄露(右键查看源代码)、http头泄露(类似百度的 BWS/1.1 )
- 4.任意文件下载 造成的信息泄露(可以下载 WEB-INF 文件夹里内容)
- 5.开源社区信息泄露 ,例如:泄露出项目名称,而整个项目代码可以在 github、gitee 等找到
- 6.使用vim异常退出,可能存在类似 .index.php.swp 临时文件
还有一部分比较冷门的信息泄露,比如 .DS_Store泄露、nginx错误配置 导致的文件泄露,因为利用效果有限或者不具有通用性,这里不再深入讲解。