好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python實現web郵箱掃描的示例(附源碼)

python實現web郵箱掃描的示例(附源碼)

熱門標簽:在哪里辦理400電話號碼 千陽自動外呼系統 工廠智能電話機器人 400電話申請服務商選什么 平頂山外呼系統免費 江蘇客服外呼系統廠家 西藏智能外呼系統五星服務 清遠360地圖標注方法 原裝電話機器人

信息收集是進行滲透測試的關鍵部分,掌握大量的信息對于攻擊者來說是一件非常重要的事情,比如,我們知道一個服務器的版本信息,我們就可以利用該服務器框架的相關漏洞對該服務器進行測試。那么如果我們掌握了該服務器的管理員的郵箱地址,我們就可以展開一個釣魚攻擊。所以,對web站點進行郵箱掃描,是進行釣魚攻擊的一種前提條件。

下面,我們利用python腳本來實現一個web站點的郵箱掃描爬取。目的是在實現這個腳本的過程中對python進行學習

最后有完整代碼

基本思路

  1. 我們向工具傳入目標站點之后,首先要對輸入進行一個基本的檢查和分析,因為我們會可能會傳入各種樣式的地址,比如http://www.xxxx.com/、http://www.xxxx.com/123/456/789.html等等,我們需要對其進行簡單的拆分,以便于后面鏈接的爬取
  2. 通過requests庫爬取目標地址的內容,并且在內容通過正則表達式中尋找郵箱地址
  3. 查找爬取的網站中的超鏈接,通過這些超鏈接我們就能進入到該站點的另外一個頁面繼續尋找我們想要的郵箱地址。
  4. 開工:

該腳本所需要的一些庫

from bs4 import BeautifulSoup #BeautifulSoup最主要的功能是從網頁抓取數據,Beautiful Soup自動將輸入文檔轉換為Unicode編碼
import requests #requests是python實現的最簡單易用的HTTP庫
import requests.exceptions
import urllib.parse
from collections import deque #deque 是一個雙端隊列, 如果要經常從兩端append 的數據, 選擇這個數據結構就比較好了, 如果要實現隨機訪問,不建議用這個,請用列表. 
import re #是一個正則表達式的庫

獲取掃描目標

user_url=str(input('[+] Enter Target URL to Scan:'))
urls =deque([user_url]) #把目標地址放入deque對象列表

scraped_urls= set()#set() 函數創建一個無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、并集等。
emails = set()

對網頁進行郵箱地址爬取(100條)

首先要對目標地址進行分析,拆分目標地址的協議,域名以及路徑。然后利用requests的get方法訪問網頁,通過正則表達式過濾出是郵箱地址的內容。'[a-z0-0.-+]+@[a-z0-9.-+]+.[a-z]+',符合郵箱格式的內容就進行收錄。

count=0
try:
  while len(urls):  #如果urls有長度的話進行循環
    count += 1		#添加計數器來記錄爬取鏈接的條數 
    if count ==101:
      break
    url = urls.popleft() #popleft()會刪除urls里左邊第一條數據并傳給url
    scraped_urls.add(url)

    parts = urllib.parse.urlsplit(url) # 打印 parts會顯示:SplitResult(scheme='http', netloc='www.baidu.com', path='', query='', fragment='')
    base_url = '{0.scheme}://{0.netloc}'.format(parts)#scheme:協議;netloc:域名 

    path = url[:url.rfind('/')+1] if '/' in parts.path else url#提取路徑
    print('[%d] Processing %s' % (count,url))
   
    try:
      head = {'User-Agent':"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11"}
      response = requests.get(url,headers = head)
    except(requests.exceptions.MissingSchema,requests.exceptions.ConnectionError):
      continue
    new_emails = set(re.findall(r'[a-z0-0\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+', response.text ,re.I))#通過正則表達式從獲取的網頁中提取郵箱,re.I表示忽略大小寫
    emails.update(new_emails)#將獲取的郵箱地址存在emalis中。

通過錨點進入下一網頁繼續搜索

    soup = BeautifulSoup(response.text, features='lxml')

    for anchor in soup.find_all('a'):  #尋找錨點。在html中,a>標簽代表一個超鏈接,herf屬性就是鏈接地址
      link = anchor.attrs['href'] if 'href' in anchor.attrs else '' #如果,我們找到一個超鏈接標簽,并且該標簽有herf屬性,那么herf后面的地址就是我們需要錨點鏈接。
      if link.startswith('/'):#如果該鏈接以/開頭,那它只是一個路徑,我們就需要加上協議和域名,base_url就是剛才分離出來的協議+域名
        link = base_url + link
      elif not link.startswith('http'):#如果不是以/和http開頭的話,就要加上路徑。
        link =path + link
      if not link in urls and not link in scraped_urls:#如果該鏈接在之前沒還有被收錄的話,就把該鏈接進行收錄。
        urls.append(link)
except KeyboardInterrupt:
  print('[+] Closing')

for mail in emails:
  print(mail)

完整代碼

from bs4 import BeautifulSoup
import requests
import requests.exceptions
import urllib.parse
from collections import deque
import re

user_url=str(input('[+] Enter Target URL to Scan:'))
urls =deque([user_url])

scraped_urls= set()
emails = set()


count=0
try:
  while len(urls):
    count += 1
    if count ==100:
      break
    url = urls.popleft()
    scraped_urls.add(url)

    parts = urllib.parse.urlsplit(url)
    base_url = '{0.scheme}://{0.netloc}'.format(parts)

    path = url[:url.rfind('/')+1] if '/' in parts.path else url

    print('[%d] Processing %s' % (count,url))
    try:
      head = {'User-Agent':"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11"}
      response = requests.get(url,headers = head)
    except(requests.exceptions.MissingSchema,requests.exceptions.ConnectionError):
      continue
    new_emails = set(re.findall(r'[a-z0-0\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+', response.text ,re.I))
    emails.update(new_emails)

    soup = BeautifulSoup(response.text, features='lxml')

    for anchor in soup.find_all('a'):
      link = anchor.attrs['href'] if 'href' in anchor.attrs else ''
      if link.startswith('/'):
        link = base_url + link
      elif not link.startswith('http'):
        link =path + link
      if not link in urls and not link in scraped_urls:
        urls.append(link)
except KeyboardInterrupt:
  print('[+] Closing')

for mail in emails:
  print(mail)

實驗………………

以上就是python實現web郵箱掃描的示例(附源碼)的詳細內容,更多關于python web郵箱掃描的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python使用turtle庫繪制小豬佩奇(實例代碼)
  • 啥是佩奇?使用Python自動繪畫小豬佩奇的代碼實例
  • 使用python畫個小豬佩奇的示例代碼
  • python 制作手機歸屬地查詢工具(附源碼)
  • python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解
  • python wsgiref源碼解析
  • python 制作網站篩選工具(附源碼)
  • Python黑魔法遠程控制開機的實例

標簽:安慶 日照 隨州 錦州 股票 白城 天水 西安

巨人網絡通訊聲明:本文標題《python實現web郵箱掃描的示例(附源碼)》,本文關鍵詞  python,實現,web,郵箱,掃描,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現web郵箱掃描的示例(附源碼)》相關的同類信息!
  • 本頁收集關于python實現web郵箱掃描的示例(附源碼)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: av亚洲精品A片毛片女同公交车| 太大太粗好爽受不了p| chinese直男gay国产网站| chinese处破videos| 被?到爽??流漫画双男主视频| 欧美一级爱操视频| 67pao成人无码免费视频A片| 日韩福利影视| 乖女第一次真紧| 久久婷婷五夜综合色啪 - 石进夜钢琴曲| 国产看真人毛片爱做A片| 精品成a人无码亚洲成a金钱 | 好爽?好紧?腿张开自己动| 女人野外做爰A片| 狂揉美女胸免费网站在线| 欧美黄色录像| Wc女厕偷拍在线视频| ijzzij18免费观看18视频| 日本污污网站| 乖喷出来就舒服了H| 双性受被各种工具固定调教| 国产成人无码亚洲A片舞蹈| 宇都宫紫苑的个人资料| 色妹子在线| 动漫美女被?吸乳奶动漫视频| 久久久久久精品免费观看 | 精品香蕉国产一区二区三区四区| 国产丝袜熟女一区二区在线| 国产精品日韩一区二区三区| 欧美国产亚洲一区二区三区| 四十九级婬片A片AAA毛片A级| 日韩伊人| 久久国产成人亚洲精品| 女人爽小雪又嫩又紧| 日韩avapp| 国产AV激情视频在线观看图片| 汶上县| 杨幂醉酒视频1分13秒在线完整免费观看| 被拖进小树林C了好爽H动图| 国产萌白酱白丝AV在线观看 | 99热在线精品观看|