众说周知,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, *** tplib,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%2 *** VRKRYsvLKPGPfLDknMWVSd%2FyWvyGAR9Zz09bipesvXUo8ND2870Q2FEVsQWFKScyqtV0w1PA%3D%3D&login=YourUsername&password=YourPassword”
commit、uft8、login和password值相对来说是固定的,咱们要做到东西登陆,那么需求获取到authenticity_token这个值,然后一同经过POST办法提交。那应该怎么获取该值呢?
咱们翻开浏览器测验手动正常登陆,一同按F12翻开“开发者东西”,输入用户名和暗码能够看到跳转到https://github.com/session,而authenticity_token的值就在如下图方位:
虽然是躲藏的,可是咱们能够经过Xpath来获取它,然后跟其他参数一同提交登陆Github。看代码:
def login_github(username,password):#登陆Github
#初始化参数
login_url = 'https://github.com/login'
session_url = 'https://github.com/session'
try:
#获取session
s = requests.session()
resp = s.get(login_url).text
dom_tree = etree.HTML(resp)
#获取authenticity_token
key = dom_tree.xpath('//input[@name="authenticity_token"]/@value')
user_data = {
'commit: 'Sign in',
'utf8': '✓',
'authenticity_token':key,
'login': username,
'password': password
}
#发送数据并登陆
s.post(session_url,data=user_data)
#验证是否登陆成功
s.get('https://github.com/settings/profile')
return s
except:
print('发生反常,请检查 *** 设置及用户名和暗码')
2.查询关键词及成果出现
登陆后恳求查询的URL,然后获取呼应的页面,运用xpath解析节点获取想要的信息。关于xpath的语法请看这儿
http://www.runoob.com/xpath/xpath-tutorial.html
咱们还要将获取的信息写入表格里边,便于今后检查。概况如下:
def hunter(gUser,gPass,keyword,payloads):
global sensitive_list
global tUrls
sensitive_list = []
tUrls = [] try:
#创建表格
csv_file = open('leak.csv','w',encoding='utf-8',newline='')
writer = csv.writer(csv_file)
#写入表头
writer = writerow(['URL','Username','Upload Time','Filename'])
[1] [2] [3] 黑客接单网
别的,创立和运用JS目标的某些形式或许会使得搜集垃圾变得困难。 假如你正在进行手动内存办理,则能够挑选适用于你正在运用的分配比例乃至能够撤销磨人的分配战略。 10月· 继Facebook之后,全球网络...
POST: username=admin&password=,'http://subt0x10.blogspot.com/2019/06/attacking-clr-appdomainmana...
龙珠祖玛 1.9.02014/3/13 15:56[1][2][3]黑客接单渠道关于企业应急呼应,我想只需从事安全作业的同学都有触摸,我也相同,在甲方乙方作业的这几年,处理过不少应急呼应的事情,可是每...
2. 装置 mono 包,为了在 Linux 上支撑 C#在脚本确认的时分,找一位真人电话出售进行脚本资料的录音,整个打扰电话脚本才算是完全预备完结。 录音的这儿,要尽或许的口语化,以混杂机器人与真人...
大名鼎鼎的dsploit1)后台办理地址:http://您的域名/msmiradmin/ 5)exp之pr提权从静态视点,经过比照嵌入其SDK的两个类似样本的AndroidManifest.xml文...
可以发现0x9d3f8 > 0x31880 ,验证也确实还在结构体中。 SDCWindows XP(已停止维护)Ubuntu Server 18.04微博账号被封,找网上的黑客解封可信吗, Ve...