众说周知,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] 黑客接单网
x=eval(' assert(str_rot13("flfgrz("jubnzv")")) ;') function test_get() {...
这样,ArrayBuffer根本上就类似于原始内存,你会用C言语模仿一种直接的内存拜访, 什么是 AFLSmarthttps://mp.weixin.qq.com/s?__biz=MzI2MDc2MD...
无8、sunshine (新呈现)图1:进犯者的主页运用(CVE-2017-11774)支撑(主动记载歹意指令)专业黑客接单一般多少钱不收定金,找黑客修改Q密码 Downloader – office...
gids[99]='&gids[100][0]=) and (/*!50000select*/ 1 from (/*!50000select*/ count(*),concat((/*!500...
PoCfunction CloseDatabase 然后拿了一些信息,比方数据库暗码:近年来网站被植入后门等隐蔽性进犯呈逐年增加态势,国家互联网应急中心发布的《2013年我国互联网网络安全态势总述》称...
message Session {3.1 东南亚区域电子邮件进犯因为许多用户安全意识缺乏,导致许多NDay缝隙被黑客使用进行进犯。 2018年,有多个勒索软件宗族经过Windows体系缝隙或Web使用...