这一段时间,一直在做代码安全相关的内容,借此给大家科普一下,一些简单的扫描漏洞的方式。
我仅通过搜索.git,就能找到各种网站泄露的源代码、日志数据、用户密码等信息。
利用搜索引擎,发现泄露的源代码
在Google搜索框内输入:
“index of” inurl:.git
然后你就会发现,很多公司网站的源代码都暴露了出来:
随便点进去一个,就能看到所有的源代码记录、日志记录等。
其中,还有一些政府网站,包含一些敏感的源代码和信息。
这个搜索方式,发现的是利用git管理源代码的项目,如果我有恶意的话,就可以使用git dumper工具,将暴露的.git数据,下载到本地系统,然后检索他们所有的提交。
比如,我在网站后面输入/.git/config,或是/git,就能看到如下的情况:
(为了避免我自己暴露,浏览器开启了无痕浏览模式)
再用相同的方法,看一下提交日志:
如果说,你想要在本地下载这个存储库,做一些“科学分析”的事情,建议可以使用GitTools中的转储工具。
① 下载GitTools
git clone https://github.com/internetwache/GitTools.git
② 切换到目录下
cd GitTools/Dumper
③ 下载目标文件
./gitdumper.sh https://[TARGET]/.git/~/target
现在,你们可以看一下文件的基本内容:
④ 查看文件树
cd target
tree -a .git/objects
⑤ 拼出完整的文件名
根据git中文件的命名规则,我们可以知道,每个文件是由一个哈希值标识,完整的哈希值,还包括了对应的从属文件夹的前两个字符,所以,你们需要添加文件名,拼出完整的哈希字符串。
然后,你们可以通过这40个字符的哈希值,将结果管道化你们想要的格式
find .git/objects -type f | awk -F/ {print $3$4}
⑥ 识别文件类型
现在,你就可以使用一个for循环,来识别目录中所有文件的类型啦。
for i in $(find .git/objects -type f | awk -F/ {print $3$4}); git cat-file -t $i
在这个网站中,我们可以统计到:
1276棵树
910个提交
923个blob
⑦ 预览文件内容
根据git存储规则:git将对象存储.git/objects作为它们的原始内容,这些内容使用zlib库进行压缩。
这也就是说,我们不能像看自己的代码一样,直接在编辑器中看到。但是,我们可以通过其他的选项,识别文件中的内容,比如git cat-file。
git cat-file -p [Full File Hash] | head
可以看到,这里面是php代码。根据常识我们知道,php是一种服务器端的脚本语言。这段代码,根据经验,应该是的后端配置设置、硬编码凭据(比如用户名和密码)、API令牌和其他端点等。
为什么Git源代码会暴露?
IT人,应该对git很是熟悉了。git是一个版本控制系统,主要用于在Web开发过程中,跟踪或监控文件夹、或是文件的修改。根据分支管理代码,不仅具有成本效益,而且在管理源代码版本时,复杂性也很低。
在这种情况下,.git存储库,也就是.git文件夹,存放了跟踪的记录、修改的记录、和相关的工具等。
如果.git可以让公开访问,就会让互联网上的每一个人,都可以访问到源代码,并且获取代码中的各种逻辑缺陷。
index of 查到的是什么?
这其实是Google的一个黑客数据库——Google Dorks (https://www.exploit-db.com/)
Google Dork查询,是一个搜索字符串,可以快速查到那些有漏洞的、不安全的项目信息。可以帮助黑客快速找到漏洞。
基本上,可以使用Dork可以找到的数据有:
管理员登录页面
用户名和密码
容易攻击的实体
敏感文件
政府/军事数据
电子邮件列表
银行账户详情
…..
可以使用各种各样的搜索命令,找到有漏洞的网站
使用Google dork发现有漏洞的网站
在本部分内容中,将会利用Google dork中常用的命令,发现一箩筐有漏洞的网站。
主要包含下面相关的内容:
日志文件
容易受到攻击的网络服务器
打开FTP服务器
环境文件
SSH秘钥
电子邮件列表
公共摄像机
MP3、电影、PDF文件
天气
缩放视频
WordPress
Apache2
phpMyAdmin
Jier/Kibana
……
1、日志文件
日志文件常常包含各种各样的敏感信息。错误日志、访问日志和其他类型的应用程序日志,经常在网站的公共 HTTP 空间内被发现。
我们可以组合两个 Google 运算符,allintext 和 filetype,例如:
这将显示很多结果,包括所有 *.log 文件中的用户名。
在结果中,我们发现一个特定的网站显示来自数据库服务器的 SQL 错误日志,其中包含关键信息:
这个 Google hack 示例将当前数据库名称、用户登录名、密码和电子邮件值暴露给了 Internet。(我已将原始值替换为“XXX”)
2、易受攻击的网络服务器
查看所有公开的url,可以将“/proc/self/cwd”换成你想要查看的网站url
3、索引开放的FTP 服务器
Google 索引,不仅基于 HTTP 的服务器,它还索引开放的 FTP 服务器。
通过以下 dork,能够看到公共 FTP 服务器,然后你会发现很多有趣的事情。
在这个例子中,我发现了一个重要的政府服务器,其 FTP 空间是开放的。
4、环境文件
.env 文件是流行的 Web 开发框架,用来声明本地和在线开发环境的一般变量和配置的文件。
推荐的做法之一是将这些 .env 文件移动到无法公开访问的地方。然而,有很多开发人员并不关心这一点,而是将他们的 .env 文件插入主要的公共网站目录中。
可以使用的一些命令:
能看到的结果:
很多未加密的用户名、密码和 IP 直接暴露在搜索结果中。您甚至不需要单击链接来获取数据库登录详细信息。
5、SSH 私钥
SSH 私钥用于解密在 SSH 协议中交换的信息。作为一般安全规则,私钥必须始终保留在用于访问远程 SSH 服务器的系统上,并且不应与任何人共享。
使用以下 dork,您将能够找到由 uncle Google 索引的 SSH 私钥。
intitle:index.of id_rsa -id_rsa.pub
让我们转到另一个有趣的 SSH Dork。
如果,你正在使用带有 PUTTY SSH 客户端的 Windows 操作系统,这个程序始终会记录你的 SSH 连接的用户名。
在这种情况下,我们可以使用一个简单的 dork 从 PUTTY 日志中获取 SSH 用户名:
然后你就会看到:
6、电子邮件列表
使用 Google Dorks 查找电子邮件列表非常容易。通过以下命令,你能获取包含大量电子邮件地址的 excel 文件。
我们过滤后仅检查 .edu 域名,发现一所受欢迎的大学有大约 1800 封来自学生和教师的电子邮件。
垃圾邮件发送者也知道这个技巧,并每天使用它来建立和扩大他们的垃圾邮件列表。
7、现场摄像机
你有没有想过你的私人直播摄像头,不仅可以被你看到,也可以被互联网上的任何人看到?
这是获取各种基于 IP 的摄像机:
要查找基于 WebcamXP 的传输:
另一个用于一般现场摄像机:
有很多现场摄像头可以让您实时观看世界任何地方。您可以找到没有 IP 限制的教育、政府甚至军用摄像机。
如果你想,你甚至可以在这些相机上做一些白帽渗透测试;能够远程控制整个管理面板,甚至可以根据需要重新配置摄像头。
8、MP3、电影和 PDF 文件
Spotify 和 Apple Music 上市后,如今几乎没有人下载音乐。但是,如果您是那些仍然下载合法音乐的经典人士之一,您可以使用这个 dork 来查找 mp3 文件:
这同样适用于您可能需要的合法免费媒体文件或 PDF 文档:
9、天气
谷歌黑客技术可用于获取任何类型的信息,其中包括连接到互联网的许多不同类型的电子设备。
在这种情况下,我们运行了一个 dork,让您可以获取 Weather Wing 设备传输。如果你参与气象学工作或只是好奇,请查看:
然后展示世界各地连接的多个设备,这些设备共享风向、温度、湿度等天气详细信息。
10、缩放视频
“Zoom-bombing”成为 2020 年最初封锁期间扰乱在线会议的流行手段。该公司此后设置了一些限制,使查找/中断 Zoom 会议变得更加困难,但只要共享 URL,仍然可以找到 Zoom 会议:
唯一的缺点是谷歌索引网站的速度。当网站被索引时,Zoom 会议可能已经结束。
11、SQL转储
是查找暴露数据的一种方式。另一种方法是查找存储在服务器上并可通过域/IP 访问的 SQL 转储。是查找暴露数据的一种方式。另一种方法是查找存储在服务器上并可通过域/IP 访问的 SQL 转储。
有时,这些转储,通过将备份存储在 Web 服务器上的站点管理员,使用的不正确备份机制出现在站点上(假设它们未被 Google 索引)。要查找压缩的 SQL 文件,我们使用:
这就不截图了,暴露的太多了。
12、WordPress 管理员
使用 dork 查找 WP Admin 登录页面,也很简单。
13、Apache2
我们很多的网站配置,都是Apache2:
LAMP(Linux、Apache、MySQL、PHP)是托管应用程序/网站的流行堆栈
这些 Apache 服务器可能被错误配置/遗忘或处于设置的某个阶段,使它们成为僵尸网络的重要目标
使用以下 dork 查找 Apache2 网页:
14、phpMyAdmin
LAMP 服务器上另一个有风险但经常被发现的工具是 phpMyAdmin 软件。这是另一种破坏数据的方法,因为 phpMyAdmin 用于通过 Web 管理 MySQL。使用的笨蛋是:
15、Jier/Kibana
Google dorks 还可用于查找托管重要企业数据的 Web 应用程序(通过 JIRA 或 Kibana)。
查找 JIRA 实例的一种更简单的方法是使用 SurfaceBrowser™ 之类的工具,它可以识别子域以及这些子域上的应用程序(除了 JIRA,还有许多其他应用程序)。
如何处理网站中的漏洞?
一个很简单的方式是:屏蔽掉Google dork。但这并不解决实际的问题,如果有心搜,还能搜的到。
一些常见但非常必要的处理方式:
通过用户和密码身份验证以及使用基于 IP 的限制来保护私人区域。
加密您的敏感信息(用户、密码、信用卡、电子邮件、地址、IP 地址、电话号码等)。
定期对您的网站进行漏洞扫描,这些扫描通常已经使用了流行的 Google Dorks 查询,并且可以非常有效地检测最常见的漏洞。
对您自己的网站运行常规的 dork 查询,看看您是否可以在坏人找到之前找到任何重要信息。您可以在Exploit DB Dorks 数据库中找到大量流行的 dorks 。
如果您发现敏感内容暴露,请使用Google Search Console请求将其删除。
使用位于根级网站目录中的 robots.txt 文件来阻止敏感内容。