如何利用GitHub搜索敏感信息
背景:
最近总是能听到同事说在GitHub上搜到某个敏感信息,然后利用该信息成功的检测并发现某个漏洞,最后提交到对应的SRC(安全应急响应中心)换点money。顿时心里那个羡慕啊,然后就心说自己也要学会使用GitHub这个宝藏。
开始:
众所周知,作为安全人员,学会使用google hack是最基本的一项技能。那么什么是google hack呢?google hack其实就是一系列的命令语法,这些命令语法可以用来快速的搜索敏感网站,关键字等信息。比如使用:inurl:XXXX;intext:XXXX;等等。看到这里估计很多人会思考,那GitHub有没有相关的语法命令呢?其实在学习之前,我也不清楚是否存在,但是在研究以后,我发现原来GitHub也有属于自己的命令语法可以用来快速方便的搜索敏感信息。接下来就带大家一起学习一下相关的命令语法。
1.q+关键字
我们通常情况下在GitHub上搜索是这样的形式,例如在搜索处输入hundsun,可以成功的搜索出一些项目信息,如图1所示。观察一下可以看到这里的url是这样的:
2.in:file,path
上边是最常见的搜索方式,可是有时候我们希望在文件名和路径中搜索包含关键字信息,那么这时候该如何搜索呢?此时可以使用如下url链接:
观察一下可以看到,在关键字后边多了in:file,path。另外,这里面的参数s用来对搜索结果进行排序。S对应的有三个值:s=,默认是以最佳匹配的方式进行排序;o=asc&s=indexed,选择以最近更新的;o=desc&s=indexed选择最近被索引的。
3.repo:项目名
有时候大家可能会遇到一种情况,需要在指定项目中搜索包含敏感信息的文件,那么这时候该如何进行搜索呢?此时,可以使用如下url:
https://github.com/search?o=desc&p=1&q=aliyuncs in:file,path repo:XXXXX &ref=searchresults &s=indexed&type=Code&utf8=%E2%9C%93。观察一下,在q参数里面多了repo:xxxx字符串。这个字符串是用来指定在哪个项目中搜索包含关键字的信息。如下图所示:
4.-repo:项目名
对应的使用如下链接可以搜索除了指定项目以外的包含敏感信息的文件:
https://github.com/search?o=desc&p=1&q=hundsun in:file,path -repo:XXXXX &ref=searchresult s &s=indexed&type=Code&utf8=%E2%9C%93。这里q参数多了-repo:xxxxx。这个用来指定排除哪些项目。
5.搜索兴趣推荐项目
Github还提供了一种方式可以基于用户的搜索兴趣进行推荐,使用如下url:https://github.com/explore
6.stars:条件
在有些情况下,我们需要对搜索结果进行筛选,使用星数搜索进行搜索是一个较好的方式。使用该语法,程序会展示星数大于要求的项目。这样带来的好处是可以快速找到好的项目。这里面的条件可以是简单的>或者..。1..10表示搜索项目星数介于1到10之间的。
7.高级搜索
高级搜索可以指定多个搜索选项,例如项目名,项目创建者,创建时间,星数等等。其链接如下:https://github.com/search/advanced
看到这里可能很多人还没意识到有什么用,其实这里面的作用是很大的。因为你完全可以根据个人的需求去开发一些独特的搜索脚本。比如开发一个搜索数据库信息的python程序。例如:在正常情况下,输入关键字:jdbc 3306可以快速搜索出很多包含数据库的信息,利用前边学到的知识,可以加上对搜索结果进行筛选提取出外网的可用的数据库信息。
最后说点搜索技巧一类的,Github是一个大的宝库,知道搜索语法还需要了解如何去搜。尤其是搜索关键字该如何去寻找。可以根据特征去搜索,比如:对于oracle的,可以搜索jdbc 1502,因为mysql默认端口是1502。对于其他的可以搜索1433,3389一类的端口。如图所示。除此之外还可以这样搜索:关键字 username passwd、ftp等等。
最后附带我在网上搜集了几个敏感信息收集工具,这里都列出来方便自己也方便他人。这些工具在文件末尾备注。这里对GitPrey重点说明一下,其是使用python开发的用于收集企业敏感信息的脚本工具。我下载以后尝试输入包含各种关键字的命令运行,但是返回的结果都为空。后来经过查看代码发现在进行信息提取的时候,有个正则匹配地方,匹配的标签出问题了。因此这个如果要使用是需要进行简单改造的,其他工具都可以拿来使用。当然,如果感兴趣的可以利用前边介绍的知识自己构建一个专属的敏感信息收集工具。
GitPrey(https://github.com/repoog/GitPrey)、
Nuggest(https://github.com/az0ne/Github_Nuggests)
theHarvester(https://github.com/laramies/theHarvester)
GISL(https://github.com/FeeiCN/GSIL)
如何利用GitHub搜索敏感信息的更多相关文章
- 4款Github泄漏敏感信息搜索工具简单比较
gitrob Ruby开发,支持通过postgresql数据库https://github.com/michenriksen/gitrob weakfilescan Python开发,多线程,猪猪侠开 ...
- svn泄漏敏感信息利用方式
之前仅知道svn权限配置不当,会导致敏感信息泄漏,但是一直不知道具体利用方式. 今天测试svn dig时抓包分析才知道: http://www.xxx.com/路径/.svn/text-base/文件 ...
- 利用数据库视图实现WEB查询敏感信息接口动态脱敏
前言: 利用数据库视图,实现web接口查询敏感信息时动态脱敏. 具体目标:某接口为用户信息查询接口,返回敏感用户信息(id,姓名.手机号[敏感].身份证号[敏感]),如果web用户为管理员角色,则查询 ...
- 如何高效利用github提升自己
作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户,是开发者打开程序开源大门的一扇窗口,也是开发者快速提升自己的一个重要途径.本文将从两个方面介绍github的使用方式. 和逛微博 ...
- 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创
前言 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互还是需要使用明文数据,所以查询返回我们还需要经过相应的解密才能返回给调用方. ps:日常开发中,我们要有一定的安全意识 ...
- 【Git】敏感信息保护
保护Git仓库敏感信息 代码中无可避免有一些敏感信息,包含但不限于,数据库信息,密钥,账号信息等等.通常我们会把这些信息放在配置文件,这些信息若泄露会造成安全问题. 以前我们做法,是把配置文件通过.g ...
- Spring Boot 配置中的敏感信息如何保护?
在之前的系列教程中,我们已经介绍了非常多关于Spring Boot配置文件中的各种细节用法,比如:参数间的引用.随机数的应用.命令行参数的使用.多环境的配置管理等等. 这些配置相关的知识都是Sprin ...
- SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息
1. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo&q ...
- jboss eap 6.2+ 版本中 加密datasource密码等敏感信息
默认情况下,在jboss eap 6.2+ 管理控制台创建datasource后,会在standalone.xml(独立模式)或host.xml(域模式)中以明文保存相关敏感信息. 这会给服务器留下安 ...
随机推荐
- table td中的内容过长,显示为固定长度,多余部分用省略号显示
简单描述:table数据过长,结果顶到下一格,影响了数据的查看 解决办法: 给table 加上style属性 另外 给td加上style标签修饰 <table class="tab ...
- C++—模板(2)类模板与其特化
我们以顺序表为例来说明,普通顺序表的定义如下: typedef int DataType; //typedef char DataType; class SeqList { private : Dat ...
- linux目录的特点
1./是所有目录的顶点. 2.目录结构像一颗倒挂的树 3.目录和磁盘分区,默认是木有关联的 4./不同的目录可能会对应不同的分区或磁盘 linux里设备如果不挂载是看不到入口的, 如果希望设备被访问, ...
- cmake编译opencv时指定cuda版本
之前有网友提问说,基于cmake编译时如果切换cuda版本,比如我同时装了cuda8和cuda9,opencv总是找到cuda9,我想用cuda8怎么办?实际上,手头上要配置的工程是基于opencv3 ...
- AWS S3服务使用
AWS S3是亚马逊的一种文件存储服务使用方便. 一.配置服务 public static class AWS_S3ClientInfo { private static readonly strin ...
- WPF自定义仪表盘控件
闲来无事,分享一个仪表盘 源码: 直接复制代码即可运行,=.=! <Window x:Class="TGP.InstrumentationDemo.MainWindow" x ...
- php ReflectionClass类遍历类中包含元素的方法
ReflectionClass 类 类内容 class MyClass { const myconst1 = 100000001; const myconst2 = [ 1 => '开始时间', ...
- Linux操作系统log日志日志分别指什么
Linux操作系统log日志日志分别指什么 2019-04-20 20:41:05 一.一般的日志 /var/log/messages —包括整体系统信息,其中也包含系统启动期间的日志.此外,m ...
- pycharm的list中append的应用
li = [11,22,33,44] li.append(5) print(li) #输出结果 [11,22,33,44,5] #后面可加字母,列表等字符串
- PC端问题列表及解决方案
一.CSS相关 1.PC站百度文件引用不到,出现报错,问题可能是电脑拦截了百度广告. 解决方案:把拦截广告的浏览器插件关掉. 2.ie6双倍边距:在使用了float的情况下,不管是向左还是向右都会出现 ...