網(wǎng)站滲透常用Python小腳本查詢同ip網(wǎng)站
旁站查詢來源:
http://dns.aizhan.com
http://s.tool.chinaz.com/same
http://i.links.cn/sameip/
http://www.ip2hosts.com/
效果圖如下:
以百度網(wǎng)站和小殘博客為例:
PS:直接調(diào)用以上4個旁注接口查詢同服服務(wù)器域名信息包含服務(wù)器類型 比如小殘博客使用的是Tengine
#!/usr/bin/env python #encoding: utf-8 import re import sys import json import time import requests import urllib import requests.packages.urllib3 from multiprocessing import Pool from BeautifulSoup import BeautifulSoup requests.packages.urllib3.disable_warnings() headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20'} def links_ip(host): ''' 查詢同IP網(wǎng)站 ''' ip2hosts = [] ip2hosts.append("http://"+host) try: source = requests.get('http://i.links.cn/sameip/' + host + '.html', headers=headers,verify=False) soup = BeautifulSoup(source.text) divs = soup.findAll(style="word-break:break-all") if divs == []: #抓取結(jié)果為空 print 'Sorry! Not found!' return ip2hosts for div in divs: #print div.a.string ip2hosts.append(div.a.string) except Exception, e: print str(e) return ip2hosts return ip2hosts def ip2host_get(host): ip2hosts = [] ip2hosts.append("http://"+host) try: req=requests.get('http://www.ip2hosts.com/search.php?ip='+str(host), headers=headers,verify=False) src=req.content if src.find('result') != -1: result = json.loads(src)['result'] ip = json.loads(src)['ip'] if len(result)>0: for item in result: if len(item)>0: #log(scan_type,host,port,str(item)) ip2hosts.append(item) except Exception, e: print str(e) return ip2hosts return ip2hosts def filter(host): ''' 打不開的網(wǎng)站... ''' try: response = requests.get(host, headers=headers ,verify=False) server = response.headers['Server'] title = re.findall(r'<title>(.*?)</title>',response.content)[0] except Exception,e: #print "%s" % str(e) #print host pass else: print host,server def aizhan(host): ip2hosts = [] ip2hosts.append("http://"+host) regexp = r'''<a href="[^']+?([^']+?)/" rel="external nofollow" target="_blank">\1</a>''' regexp_next = r'''<a rel="external nofollow" >%d</a>''' url = 'http://dns.aizhan.com/%s/%d/' page = 1 while True: if page > 2: time.sleep(1) #防止拒絕訪問 req = requests.get(url % (host , page) ,headers=headers ,verify=False) try: html = req.content.decode('utf-8') #取得頁面 if req.status_code == 400: break except Exception as e: print str(e) pass for site in re.findall(regexp , html): ip2hosts.append("http://"+site) if re.search(regexp_next % (page+1 , page+1) , html) is None: return ip2hosts break page += 1 return ip2hosts def chinaz(host): ip2hosts = [] ip2hosts.append("http://"+host) regexp = r'''<a href='[^']+?([^']+?)' target=_blank>\1</a>''' regexp_next = r'''<a href="javascript:" rel="external nofollow" val="%d" class="item[^"]*?">%d</a>''' url = 'http://s.tool.chinaz.com/same?s=%s&page=%d' page = 1 while True: if page > 1: time.sleep(1) #防止拒絕訪問 req = requests.get(url % (host , page) , headers=headers ,verify=False) html = req.content.decode('utf-8') #取得頁面 for site in re.findall(regexp , html): ip2hosts.append("http://"+site) if re.search(regexp_next % (page+1 , page+1) , html) is None: return ip2hosts break page += 1 return ip2hosts def same_ip(host): mydomains = [] mydomains.extend(ip2host_get(host)) mydomains.extend(links_ip(host)) mydomains.extend(aizhan(host)) mydomains.extend(chinaz(host)) mydomains = list(set(mydomains)) p = Pool() for host in mydomains: p.apply_async(filter, args=(host,)) p.close() p.join() if __name__=="__main__": if len(sys.argv) == 2: same_ip(sys.argv[1]) else: print ("usage: %s host" % sys.argv[0]) sys.exit(-1)
大家可以發(fā)揮添加或者修改任意查詢接口。注意是這個里面的一些思路與代碼。
相關(guān)文章
Python ORM框架SQLAlchemy學(xué)習筆記之映射類使用實例和Session會話介紹
這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習筆記之映射類使用實例和Session會話介紹,需要的朋友可以參考下2014-06-06windows下pycharm安裝、創(chuàng)建文件、配置默認模板
這篇文章主要為大家詳細介紹了windows下pycharm安裝、創(chuàng)建文件、配置默認模板,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07python如何使用import引入其他目錄文件或自定義模塊
這篇文章主要介紹了python如何使用import引入其他目錄文件或自定義模塊方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法
今天小編就為大家分享一篇python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08提高python代碼可讀性利器pycodestyle使用詳解
鑒于 Python 在數(shù)據(jù)科學(xué)中的流行,我將深入研究 pycodestyle 的使用方法,以提高 Python 代碼的質(zhì)量和可讀性。如果你想提升代碼質(zhì)量,歡迎收藏學(xué)習,有所收獲,點贊支持2021-11-11Python爬蟲之Selenium設(shè)置元素等待的方法
這篇文章主要介紹了Python爬蟲之Selenium設(shè)置元素等待的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2020-12-12