APP下载
报价宝  ›  科技  › 

自己动手打造Github程式码泄露监控工具

报价宝 来源:baojiabao.com 发布时间:2019-09-23 20:10:00 11月15日更新
报价宝综合消息自己动手打造Github程式码泄露监控工具

作者:ztencmcp

来源:https://www.freebuf.com/articles/web/173479.html

0×00 背景

众说周知,Github这块肥肉很受安全人员和黑客关注。因为很多新程序序猿和老手不经意就会把他们的劳动成果分享出来,而往往这种开源精神,奉献精神会对企业带来一定的安全风险。

例如程式码里面包含各种敏感资讯(使用者名称、密码、数据库资讯、内网IP,甚至程式猿的身高、体重、年龄和婚姻状况。哈哈),所以Github资讯泄露监控就不得不亮剑。另外也是小弟所在的企业被第三方找出有敏感资讯泄露,囧,本来打算自己找些开源工具。看了些开源工具,都不太适合,所以就有了这篇自己动手打造Github程式码泄露监控工具。

0×01 撸起袖子开干

人生苦短,我用Python!

Python强大的库、简洁语言以及开发迅速等特点,深受广大程式开发者喜爱。那么我们就用Python来开发吧!

原理及步骤

我们知道Github并未开放查询搜寻的API,那么我们只能通过爬虫来爬取页面,然后通过解析器对返回的内容解析,从而获取到我们想要的资讯。具体步骤如下:

1.登陆Github;

2.查询关键词结果呈现;

3.邮件预警;

4.配置档案读取。

开发环境及用到的Python库

开发环境为:MacOS10.12.6, Python版本3.6.5

Python库:requests,lxml,csv,tqdm,email,smtplib,configparser,time

请看官老爷们去了解以上Python库的用法,这里不再赘述。

0×02 步骤解析

1.登陆Github

登陆这里设定了一个坑,登陆https://github.com/login会跳转到https://github.com/session,然后提交请求主体。而主体包含了如下引数:

“commit=Sign+in&utf8=%E2%9C%93&authenticity_token=sClUkea9k0GJ%2BTVRKRYsvLKPGPfLDknMWVSd%2FyWvyGAR9Zz09bipesvXUo8ND2870Q2FEVsQWFKScyqtV0w1PA%3D%3D&login=YourUsername&password=YourPassword”

commit、uft8、login和password值相对来说是固定的,我们要做到工具登陆,那么需要获取到authenticity_token这个值,然后一起通过POST方法提交。那应该如何获取该值呢?

我们开启浏览器尝试手动正常登陆,同时按F12开启“开发者工具”,输入使用者名称和密码可以看到跳转到https://github.com/session,而authenticity_token的值就在如下图位置:

虽然是隐藏的,但是我们可以通过Xpath来获取它,然后跟其他引数一起提交登陆Github。看程式码:

2.查询关键词及结果呈现

登陆后请求查询的URL,然后获取响应的页面,使用xpath解析节点获取想要的资讯。关于xpath的语法请看这里

http://www.runoob.com/xpath/xpath-tutorial.html

我们还要将获取的资讯写入表格里面,便于以后检视。详情如下:

以上程式码的核心主要是采用xpath解析DOM树,然后根据需要的资料逐一获取然后写入表格中。最后请求raw.githubusercontent.com来获取源代码,根据使用者提供的payload进行逐一匹配,如果匹配则记录payload、URL以及程式码,然后传送邮件预警。

3.邮件预警

其实邮件传送部分不是工具的重点,但是还是有必要贴上程式码部分。请看:

4.配置档案读取

我们将建立一个.ini的档案,便于工具读取我们想要传入工具的关键词、使用者名称、密码以及payload等等。ini配置档案定义如下:

然后我们在main函式中读取它们,然后传入工具中。

以上程式码中存在另外一个sendmail函式,同样是传送邮件的功能跟sendwarning功能一样,只是传送的内容不一样。这里不再赘述。这样我们就完成了整个工具的核心部分。怎么样?对于老司机来说很简单吧!

0×03 监控效果

1.执行效果

2.邮件预警

0×04 总结

该工具的特点在于它会先使用主关键词进行搜寻,比如公司域名、邮箱、人员姓名等等。然后再从结果中去搜索使用者自定义的payload,如Password,User,Database等等。另外配合crontab可以做到每天进行搜寻然后进行预警,但是建议每天执行2次,以防触发Github的反爬机制。其实写工具并不难,多思考,多练习,人人都是开发大佬。最后感谢@0xbug大佬的Hawkeye带来的灵感和参考。最后完整程式码参考https://github.com/Hell0W0rld0/Github-Hunter。各位大佬请轻拍!谢谢!

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 笔记本价格 电视机价格 小米手机价格 耳机价格 降噪耳机价格