脚本编写目的:完成一些简单的信息收集工作。
记录一个菜鸟的编程之路
脚本实现功能:收集目标网站相关邮箱
脚本编写原因:手工收集邮箱是一件挺麻烦的事,于是这个脚本就诞生了
脚本思路:通过爬取百度以及bing搜索引擎搜索出来的邮箱到本地(谁叫这方面收集邮箱最费劲呢!害)
#-*- coding:utf-8 -*-
import requests
import re
import sys
import os
from bs4 import BeautifulSoup
#定义 header 数据
def headers(referer):
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip,deflate',
'Referer': referer
}
return headers
#爬取bing搜索引擎数据
def bing_search(url,page,key_word):
referer = "http://cn.bing.com/search?q=email+site%3abaidu.com&qs=n&sp=-1&pq=emailsite%3abaidu.com&first=1&FORM=PERE1"
conn = requests.session() #保持会话
bing_url = "http://cn.bing.com/search?q=" + key_word + "+site%3a" + url + "&qs=n&sp=-1&pq=" + key_word + "site%3a" + url + "&first=" + str((page-1)*10) + "&FORM=PERE1" #设定接口
conn.get('http://cn.bing.com', headers=headers(referer)) #发起请求
r = conn.get(bing_url, stream=True, headers=headers(referer), timeout=8) #获取返回内容
emails = re.findall(r"[a-z0-9.-+_]+@[a-z0-9.-+_]+.[a-z]+",r.text,re.I) #晒选出目标邮箱
return emails
#爬取百度搜索引擎数据
def baidu_search(url,page,key_word):
email_list = []
emails = []
referer = "https://www.baidu.com/s?wd=email+site%3Abaidu.com&pn=1"
baidu_url = "https://www.baidu.com/s?wd="+key_word+"+site%3A"+url+"&pn="+str((page-1)*10)
conn = requests.session() #保持会话
conn.get(referer,headers=headers(referer))
r = conn.get(baidu_url, headers=headers(referer))
soup = BeautifulSoup(r.text, 'lxml') #解析网页中的元素
tagh3 = soup.find_all('h3') #查找标签
for h3 in tagh3:
href = h3.find('a').get('href')
try:
r = requests.get(href, headers=headers(referer),timeout=8)
emails = re.findall(r"[a-z0-9.-+_]+@[a-z0-9.-+_]+.[a-z]+",r.text,re.I)
except Exception as e:
pass
for email in emails:
email_list.append(email)
return email_list
if __name__ == '__main__':
#获取总数据并去重用
email_slit = []
email_slits = []
try:
url = sys.argv[1]
page = sys.argv[2]
key_words = ['email', 'mail', 'mailbox', '邮件', '邮箱', 'postbox']
print('开始收集邮箱请耐心等待:')
for key in key_words:
bing = bing_search(url,int(page),key)
baidu = baidu_search(url,int(page),key)
email = bing + baidu
email_slit = email + email_slit
for slit in email_slit: #做个去重处理
if slit not in email_slits:
email_slits.append(slit)
print(email_slits)
file_path = os.path.dirname(__file__) + "/" + url + ".txt" # 在当前目录创建文件,保存结果
fp = open(file_path, 'w', encoding='utf-8')
for i in email_slits:
fp.write(i + "n")
print('------------------------------------------------')
print('[+]扫描结束,结果保存至当前目录下,文件名:url.txt')
except Exception as ree:
print('''使用命令:python3 email.py [页数]''')
http://tool.chacuo.net/mailverify
https://bbs.ichunqiu.com/thread-55388-1-1.html
1、利用相近字符:
1 б 6 、2O 0 、 B ᴃ ß、q q、a α、B β、r γ
2、利用西里尔字符:
Κ λ μ ν ο ρ σ χ ω О Р а в В А
3、利用歧义URL:
mail-qq.com、secure-alipay.com、mail163.com;
4、示例:
3423423@jԁ.com 235235@ jd.com
αlіyun.com aliyun.com
ТаоЬао.com Taobao.com
Мі.com Mi.com
学习写脚本,励志做个脚本小子O(∩_∩)O哈哈~
END
本文始发于微信公众号(NOVASEC):信息收集之路—邮箱收集
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论