众说周知,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] 黑客接单网
例如,你能够运用Int8类型的数组,将其分化为8位字节。 僵尸网络其间,清晰的针对我国境内施行进犯活动的,而且仍旧活泼的揭露APT 安排,包含海莲花,摩诃草,蔓灵花,Darkhotel,Group 1...
#3 0x542960 in readGlyph afdko/c/public/lib/source/cffread/cffread.c:2927:14临时解决建议DC寻找黑客帮我找被偷的手机, Ve...
3、在受影响版本的系统上启用网络级身份验证(NLA);启用NLA后,攻击者需要使用目标系统上的有效账户对远程桌面服务进行身份验证,才能成功利用该漏洞。 新添加的isInvalidPath方法则是对ur...
WEB使用含糊测验(WEB Fuzz)是一种特别方式的网络协议含糊测验,专门重视遵从HTTP标准的网络数据包。 WEB Fuzz并不是新的概念,现在有多种WEB使用含糊测验器(WEB Fuzzer),...
装备署理服务器为PC的IP地址,端口8080(随意),衔接作业十余载,所学和所得都超乎幻想的饱满,也对人情世故的了解越来越深化了解,所谓有人的当地就有江湖,hi,兄弟,咱们好久不见你在哪里,假如真的是...
@OverrideDomain3.6 NTscan字典 saminside榜首级,评分0.0-3.9分,归于低危缝隙,这类缝隙无法绕过认证程序,简略来说进犯者无法运用这类缝隙拜访受限制的信息,也无法对...