超实用好文|我仅搜索.git,就找到了各种网站泄露的源代码

这一段时间,一直在做代码安全相关的内容,借此给大家科普一下,一些简单的扫描漏洞的方式。

我仅通过搜索.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,例如:

allintext:username filetype:log

这将显示很多结果,包括所有 *.log 文件中的用户名。

在结果中,我们发现一个特定的网站显示来自数据库服务器的 SQL 错误日志,其中包含关键信息:

MyBB SQL ErrorSQL Error:1062 Duplicate entry XXXforkeyusernameQuery:INSERTINTO XXX (`username`,`password`,`salt`,`loginkey`,`email`,`postnum`,`avatar`,`avatartype`,`usergroup`,`additionalgroups`,`displaygroup`,`usertitle`,`regdate`,`lastactive`,`lastvisit`,`website`,`icq`,`aim`,`yahoo`,`msn`,`birthday`,`signature`,`allownotices`,`hideemail`,`subscriptionmethod`,`receivepms`,`receivefrombuddy`,`pmnotice`,`pmnotify`,`showsigs`,`showavatars`,`showquickreply`,`showredirect`,`tpp`,`ppp`,`invisible`,`style`,`timezone`,`dstcorrection`,`threadmode`,`daysprune`,`dateformat`,`timeformat`,`regip`,`longregip`,`language`,`showcodebuttons`,`away`,`awaydate`,`returndate`,`awayreason`,`notepad`,`referrer`,`referrals`,`buddylist`,`ignorelist`,`pmfolders`,`warningpoints`,`moderateposts`,`moderationtime`,`suspendposting`,`suspensiontime`,`coppauser`,`classicpostbit`,`usernotes`)VALUES(XXX,XXX,XXX,XXX,XXX,0,,,5,,0,,1389074395,1389074395,1389074395,,0,,,,,,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,5.5,2,linear,0,,,XXX,-655077638,,1,0,0,0,,,0,0,,,,0,0,0,0,0,0,0,)

这个 Google hack 示例将当前数据库名称、用户登录名、密码和电子邮件值暴露给了 Internet。(我已将原始值替换为“XXX”)

2、易受攻击的网络服务器

查看所有公开的url,可以将“/proc/self/cwd”换成你想要查看的网站url

inurl:/proc/self/cwd

3、索引开放的FTP 服务器

Google 索引,不仅基于 HTTP 的服务器,它还索引开放的 FTP 服务器。

通过以下 dork,能够看到公共 FTP 服务器,然后你会发现很多有趣的事情。

intitle:”index of” inurl: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 用户名:

filetype:log username putty

然后你就会看到:

6、电子邮件列表

使用 Google Dorks 查找电子邮件列表非常容易。通过以下命令,你能获取包含大量电子邮件地址的 excel 文件。

filetype:xls inurl:”email.xls”

我们过滤后仅检查 .edu 域名,发现一所受欢迎的大学有大约 1800 封来自学生和教师的电子邮件。

site:.edu filetype:xls inurl:”email.xls”

垃圾邮件发送者也知道这个技巧,并每天使用它来建立和扩大他们的垃圾邮件列表。

7、现场摄像机

你有没有想过你的私人直播摄像头,不仅可以被你看到,也可以被互联网上的任何人看到?

这是获取各种基于 IP 的摄像机:

inurl:top.htm inurl:currenttime

要查找基于 WebcamXP 的传输:

intitle:”webcamXP 5″

另一个用于一般现场摄像机:

inurl:”lvappl.htm”

有很多现场摄像头可以让您实时观看世界任何地方。您可以找到没有 IP 限制的教育、政府甚至军用摄像机。

如果你想,你甚至可以在这些相机上做一些白帽渗透测试;能够远程控制整个管理面板,甚至可以根据需要重新配置摄像头。

8、MP3、电影和 PDF 文件

Spotify 和 Apple Music 上市后,如今几乎没有人下载音乐。但是,如果您是那些仍然下载合法音乐的经典人士之一,您可以使用这个 dork 来查找 mp3 文件:

intitle: index of mp3

这同样适用于您可能需要的合法免费媒体文件或 PDF 文档:

intitle: index of pdf` `intext: .mp4

9、天气

谷歌黑客技术可用于获取任何类型的信息,其中包括连接到互联网的许多不同类型的电子设备。

在这种情况下,我们运行了一个 dork,让您可以获取 Weather Wing 设备传输。如果你参与气象学工作或只是好奇,请查看:

intitle:”Weather Wing WS-2″

然后展示世界各地连接的多个设备,这些设备共享风向、温度、湿度等天气详细信息。

10、缩放视频

“Zoom-bombing”成为 2020 年最初封锁期间扰乱在线会议的流行手段。该公司此后设置了一些限制,使查找/中断 Zoom 会议变得更加困难,但只要共享 URL,仍然可以找到 Zoom 会议:

inurl:zoom.us/j and intext:scheduled for

唯一的缺点是谷歌索引网站的速度。当网站被索引时,Zoom 会议可能已经结束。

11、SQL转储

是查找暴露数据的一种方式。另一种方法是查找存储在服务器上并可通过域/IP 访问的 SQL 转储是查找暴露数据的一种方式。另一种方法是查找存储在服务器上并可通过域/IP 访问的 SQL 转储

有时,这些转储,通过将备份存储在 Web 服务器上的站点管理员,使用的不正确备份机制出现在站点上(假设它们未被 Google 索引)。要查找压缩的 SQL 文件,我们使用:

“index of” “database.sql.zip”

这就不截图了,暴露的太多了。

12、WordPress 管理员

使用 dork 查找 WP Admin 登录页面,也很简单。

intitle:”Index of” wp-admin

13、Apache2

我们很多的网站配置,都是Apache2:

LAMP(Linux、Apache、MySQL、PHP)是托管应用程序/网站的流行堆栈

这些 Apache 服务器可能被错误配置/遗忘或处于设置的某个阶段,使它们成为僵尸网络的重要目标

使用以下 dork 查找 Apache2 网页:

intitle:”Apache2 Ubuntu Default Page: It works”

14、phpMyAdmin

LAMP 服务器上另一个有风险但经常被发现的工具是 phpMyAdmin 软件。这是另一种破坏数据的方法,因为 phpMyAdmin 用于通过 Web 管理 MySQL。使用的笨蛋是:

“Index of” inurl:phpmyadmin

15、Jier/Kibana

Google dorks 还可用于查找托管重要企业数据的 Web 应用程序(通过 JIRA 或 Kibana)。

inurl:Dashboard.jspa intext:”Atlassian Jira Project Management Software”``inurl:app/kibana intext:Loading Kibana

查找 JIRA 实例的一种更简单的方法是使用 SurfaceBrowser™ 之类的工具,它可以识别子域以及这些子域上的应用程序(除了 JIRA,还有许多其他应用程序)。

如何处理网站中的漏洞?

一个很简单的方式是:屏蔽掉Google dork。但这并不解决实际的问题,如果有心搜,还能搜的到。

一些常见但非常必要的处理方式:

通过用户和密码身份验证以及使用基于 IP 的限制来保护私人区域。

加密您的敏感信息(用户、密码、信用卡、电子邮件、地址、IP 地址、电话号码等)。

定期对您的网站进行漏洞扫描,这些扫描通常已经使用了流行的 Google Dorks 查询,并且可以非常有效地检测最常见的漏洞。

对您自己的网站运行常规的 dork 查询,看看您是否可以在坏人找到之前找到任何重要信息。您可以在Exploit DB Dorks 数据库中找到大量流行的 dorks

如果您发现敏感内容暴露,请使用Google Search Console请求将其删除。

使用位于根级网站目录中的 robots.txt 文件来阻止敏感内容。

举报/反馈

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片