无论是在CTF比赛还是在日常网络攻防中,我认为信息搜集都是最重要的一步,在CTF比赛中往往题目会故意泄露出部分信息来帮助选手解题,本人也挖过一段时间SRC,可以说只要你搜集到了别人搜集不到的资产,那你就离挖漏洞不远了。
既然信息搜集这么重要,那么有什么样的方法或者说技巧可以帮助我们更快地进行搜集呢?
源码泄露
当我们拿到一个网站,我们能看到的内容有以下几点:浏览器渲染后的界面、网站的源码(部分)、前端代码,这些位置都有可能会隐藏关键信息,有的时候可能会限制用户查看源码,但是我们查看源码的方式 肯定不止一种,在这里给大家看一个真实案例:https://xiaohuojian.link/
这是一个科学上网免费账号的分享网站,网站的漏洞有很多,当我们进到网站主页的时候,会提示输入密码,如下图所示,但是我们肯定是不知道密码的,我刚开始尝试去网站提示的Telegrame频道查找密码,但是很可惜,密码并没有实时更新,不过我们得到了一个关键信息,之前的密码都是四位数字,在这里我们就可以写脚本爆破密码了(由于弹窗无法使用BP抓包,所以我用的vbs爆破),当然,我们现在讲的并不是怎么爆破。有没有什么办法能绕过这个密码保护直接查看免费的小火箭iOS账号密码呢?大家可以思考一下。

我相信大家最先想到的肯定是查看网站源码了,但是如果大家访问了这个网站,就可以发现右键用不了了,先给大家看一下为什么用不了右键:
window.onload = function() {
document.onkeydown = function() {
var e = window.event || arguments[0];
if(e.keyCode == 123) {
return false;
} else if((e.ctrlKey) && (e.shiftKey) && (e.keyCode == 73)) {
return false;
} else if((e.shiftKey) && (e.keyCode == 121)){
return false;
}
};
document.oncontextmenu = function() {
return false;
}
}
在这段代码中,具体来说,它执行了以下操作:
document.onkeydown:当用户按下键盘上的任意键时触发的事件处理程序。
如果按下的键是F12键(键码为123),则返回false,阻止浏览器开发者工具的打开。
如果按下的是Ctrl + Shift + I(键码为73),则返回false,阻止浏览器开发者工具的打开。
如果按下的是Shift + F10(键码为121),则返回false,阻止上下文菜单的显示。
document.oncontextmenu:当用户右键单击时触发的事件处理程序。
返回false,阻止浏览器的默认上下文菜单显示。
这些操作都可以达到查看网页源代码的功能,当然都已经被禁用了,但是我们还有没有其他办法呢?
第一种办法:view-source+url,可以使用view-source协议查看源码
第二种办法:Ctrl + U
第三种办法:直接打开开发者工具(不使用快捷键)
当我们成功看到源代码后就可以发现类似于下面的账号密码了

当然,源码里面第294行有一段JS代码,是弹窗所需密码的实现逻辑,大家有兴趣的话可以去看看

robots.txt泄露
robots协议规定了禁止爬虫的路径,这里我们先看一下百度的,https://www.baidu.com/robots.txt

里面规定了禁止爬虫的路径,但同时也会泄露一些关键路径,在CTF比赛中,往往泄露的就是flag文件的路径,然后直接访问就可以了
phps源码泄露
当源码看不了的时候,大家可以尝试访问一下index.phps,可能会有意外的惊喜
网站源码压缩包泄露(www.zip/www.rar)
有的时候网站管理员在部署网站时会意外把网站源码压缩包部署到线上环境,这时我们就可以通过访问下载网站源码压缩包,然后进行白盒审计,便于我们发现更多漏洞。
.git泄露
git是一个网站版本控制系统,可以保存下来之前提交的代码,便于开发人员进行版本控制,但是在Linus系统中点号开头的文件是隐藏文件,这也导致开发人员容易忽视,并把文件部署到线上环境,这时就可能会导致部分信息甚至网站源码泄露。
.svn泄露
同样是版本控制系统,同.git
vim泄露
当开发人员用vim编辑文件时,在该文件同一目录产生一个交换文件,swp 即 swap文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp
第一次使用vim打开文件会产生一个以swp为后缀的隐藏文件(这时候使用另一个会话端口会查看到);假如这个时候有第二个窗口同时打开同一个文件,这个时候会产生第二个临时文件swo为后缀的隐藏文件;依次类推,第三个临时隐藏文件为swn;即文件名的规律为:swp为首,以字母逆时针依次出现,即:swp,swo,swn,swm…
php探针泄露
用于测试用的探针在测试完毕之后忘记删除,被部署到线上环境,造成信息泄露,例如:tz.php,探针php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡 流量、系统负载、服务器时间等信息。 url后缀名添加/tz.php 版本是雅黑PHP探针
……剩下的等后续(明天)补充
漏洞挖掘
上面的基本上就是CTF比赛中有关信息泄露的知识,后续如果有遗漏的我会进行补充,下面我会介绍一下在漏洞挖掘中的信息搜集方式。
我们如果想要挖到一个漏洞,首先要弄懂的是你挖的这个域名下有多少资产,也就是这个域名下面的子域名列表,直接挖一个域名比较困难,我们可以先从子域名开始,挖出漏洞后再尝试越权等操作。
搜集一个域名信息的时候我们要充分利用各种搜索引擎,比如说利用Google的搜索语法:

如上图所示,当我们搜集到学号之后,就可以看看在tju的网站上有没有默认密码:

然后把学号当用户名,使用默认密码登录即可。

想要查找一个域名的子域名,我们可以利用FOFA或者360网络空间资产测绘,如下图所示:

还有其他的用法,大家感兴趣可以去自行了解(FOFA和360的语法不同)
如果要定向挖掘某一种漏洞,我们也可以直接搜索包含有漏洞应用的网站,如下图搜索的就是tju.edu.cn的子域名中使用了jQuery的网站

分享两个漏洞共享平台:
本文地址: 信息搜集