自己着手打造Github代码走漏监控东西

众说周知,Github这块肥肉很受安全人员和黑客重视。由于许多新进程序猿和内行不经意就会把他们的劳动成果共享出来,而往往这种开源精力,奉献精力会对企业带来必定的安全危险。 例如代码里边包...

众说周知,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。看代码:
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]  黑客接单网

  • 发表于 2021-04-08 12:03
  • 阅读 ( 205 )
  • 分类:互联网

0 条评论

请先 登录 后评论
故意思城
故意思城

684 篇文章

你可能感兴趣的文章

相关问题