扫码领资料
获网安教程
免费&进群
概述与现状
当我们对一些项目进行渗透、审计的时候,以及HW红蓝攻防时,对目标的开源项目信息泄露就是重要一环
2020年春,Unit 42研究人员通过GitHub Event API 分析了超过24,000份GitHub公开数据,发现有数千个文件中可能包含敏感信息
在24,000份GitHub公开数据中,存在以下泄露:
4109个配置文件
2464个API密钥
2328个硬编码的用户名及密码
2144个私钥文件
1089个OAuth令牌
总体占比高达50.56%,想想开源项目信息泄露有多可怕吧
很多企业的开源项目信息泄露,都是企业的实习生或新入职的员工造成的。
他们往往会把自己里在公司负责的一个小项目给 push 到 GitHub 上,或者是将长久以来的技术总结文章发到 GitHub 上进行汇总管理,这些文章中难免包含很多公司的数据库配置,网络拓扑,服务器信息等(这种信息泄露在小公司尤为常见)
虽然有部分公司选择使用 GitLab 等来自建 Git 远程仓库,但是同样未正确设置仓库权限为私有。导致在 /explorer
中可以看到所有的公开仓库,同时可以通过查看公开的 Groups 来得知有哪些用户,之后可以尝试爆破猜测它们的密码等等
可见自建 Git 仓库也并不是万全之计
除企业员工外,还有一群就是个人开发者(特别是高校学生),他们的开源项目信息泄露也尤为严重。
很多高校学生,平时喜欢自己写些脚本。比如选课脚本、图书馆通知、刷课脚本等开源项目,往往未对相关的代码进行脱敏,就把源码 push 到 GitHub 上。
于是,就造成这样的情况:写 Web 应用需要对接数据库,代码里会有 MySQL 的数据库账号配置;要发邮件通知,代码里就有个人学生邮箱账号密码;测试数据里可能还带有个人的常用密码;甚至还有一些校园VPN的账号密码等。
有的做得比较大的项目,可能会对接微信小程序、公众号,某教育 App 等第三方应用,甚至一些云厂商的服务,因此还会泄露这些服务的 AK 和 SK。
所以,开源项目虽方便了企业和开发者,但其中也埋藏着信息泄露的安全隐患
site #指定域名进行搜索,如site:aabyss.cn(收集团队子域名)
intext #正文中存在关键字的网页,如intext:管理登录(查找包含“管理员登录”关键词的网页)
intitle #标题中存在关键字的网页,如intitle:管理登录(查找后台管理登陆界面)
info #一些基本信息
inurl #URL存在关键字的网页,如inurl:file(查找url上含file的网址寻找上传漏洞)
filetype #搜索指定文件类型,如filetype:php(查找php类型主页)
很多网站及系统都会使用POP3和SMTP发送来邮件,不少开发者由于安全意识不足会把相关的配置信息也放到Github上。
如果这时候我们动用一下Google搜索命令语句,构造一下关键字,就能把这些信息给找出来了。
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 String password smtp
site:Github.com sa password #争对SQLServer的信息泄露
site:Github.com root password #争对MySQL的信息泄露
site:Github.com User ID='sa';Password #争对SQLServer的信息泄露
site:Github.com svn
site:Github.com svn username
site:Github.com svn password
site:Github.com svn username password
site:Github.cominurl:sql
site:Github.com password
site:Github.com ftp ftppassword
site:Github.com 密码
site:Github.com 内部
1、找管理后台地址
site:xxx.com intext:管理|后台|登陆|用户名|密码|系统|账号
site:xxx.com inurl:login/admin/manage/manager/admin_login/system
site:xxx.com intitle:管理|后台|登陆
2、找上传类漏洞地址:
site:xxx.com inurl:file
site:xxx.com inurl:upload
3、找注入页面:
site:xxx.com inurl:php?id=
4、找编辑器页面:
site:xxx.com inurl:ewebeditor
5、找登录页面
site:xxx.com inurl:"/admin/login.php"
6、查找含有username或password的xls文件
filetype:xls "username | password"
网上大部分文章都是使用Google语法来搜索,目前还没看到国内有人使用Github进行高级搜索来查找信息泄露的文章
高级搜索链接:https://github.com/search/advanced
一般搜索以域名、特殊JS路径、备案、网站的技术支持等关键内容为主,不要局限于域名
我们可以活用 GitHub 的高级搜索条件,可以避免很多不必要的干扰,这里就整理了一些:
pushed:>2020-01-01 created:>2020-01-01
使用过滤器过滤掉一些很老的代码
language:java
筛选特定语言(诸如Java)的代码,排除搜索结果中静态文件的干扰
"jdbc:mysql://"
"mysqli_connect("
搜索数据库连接语句,往往就能有很多公网数据库的账号密码
filename:.env
filename:bash_history
filename:_rsa
filename:jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml
这个总能找到一些奇奇怪怪的东西,甚至是数字证书(之前就找到国内某大学的VPN数字证书,然后就通过VPN进入内网)
aliyuncs password
对于企业而言,可以搜索企业的内网、外网域名,企业邮箱,版权声明(一般会写在代码首部注释),常用包名等
思路其实可以放的很广
关于正则表达式板块,后续会进行相应的更新
最近ChatGPT不是火遍海内外吗,很多师傅都想尝试一下
同样,格局和思路要打开,通过Github高级语法同样能找到并白嫖ChatGPT密钥
(注:本文仅提供思路,请遵守当地法律进行使用)
/"sk-[a-zA-Z0-9]{20,50}"/
关于相关的工具,我这里推荐使用这三个,是我用过感觉蛮好的
三个工具各有特点,可以依据使用者的条件和喜好自行选择
关于工具的搭建和配置,在百度和Google上很多文章都有写,笔者这里就不重复了
开源地址:https://github.com/deepdivesec/gitmad
GitMAD是一个用于发现Github上的敏感信息和数据泄漏的工具。通过给定关键字或域,GitMAD便会搜索Github上托管的代码,以查找是否存在匹配项。一旦找到了匹配项,GitMAD将克隆存储库并在文件中搜索一系列可配置的正则表达式。
然后,GitMAD会获取这些结果,并将它们插入到数据库中供后续的查看使用。这些结果也可作为邮件警报发送。另外,GitMAD将持续运行以发现与输入关键字匹配的新存储库。
开源地址:https://github.com/FeeiCN/GSIL/
此工具主要用于GitHub敏感信息泄露的监控,可实现邮件实时告警,缺点不是可视化
开源地址:https://github.com/madneal/gshark
这是个可视化的监测工具,它不仅可以监控 Github
,还可以监控 Gitlab
支持多个搜索平台,包括 Github,Gitlab(不稳定支持),Searchcode
灵活的菜单以及 API 权限管理
灵活的规则以及过滤规则设置
支持 gobuster 作为子域名爆破的支持
方便易用
修复建议:
及时检查自家开源项目,是否泄配置文件及相关敏感信息
来源:https://blog.zgsec.cn/index.php/archives/205/
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
(hack视频资料及工具)
(部分展示)
往期推荐
【精选】SRC快速入门+上分小秘籍+实战指南
爬取免费代理,拥有自己的代理池
漏洞挖掘|密码找回中的套路
渗透测试岗位面试题(重点:渗透思路)
漏洞挖掘 | 通用型漏洞挖掘思路技巧
干货|列了几种均能过安全狗的方法!
一名大学生的黑客成长史到入狱的自述
攻防演练|红队手段之将蓝队逼到关站!
巧用FOFA挖到你的第一个漏洞