网站渗透常用Python小脚本查询同ip网站


Posted in Python onMay 08, 2017

旁站查询来源:
http://dns.aizhan.com
http://s.tool.chinaz.com/same
http://i.links.cn/sameip/
http://www.ip2hosts.com/
效果图如下:
以百度网站和小残博客为例:

网站渗透常用Python小脚本查询同ip网站

网站渗透常用Python小脚本查询同ip网站

PS:直接调用以上4个旁注接口查询同服服务器域名信息包含服务器类型 比如小残博客使用的是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网站
  '''
  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 == []: #抓取结果为空
      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):
  '''
    打不开的网站...
  '''
  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 href="http://dns.aizhan.com/[^/]+?/%d/" 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)

大家可以发挥添加或者修改任意查询接口。注意是这个里面的一些思路与代码。

Python 相关文章推荐
Python的Flask框架的简介和安装方法
Nov 13 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python使用turtle库绘制时钟
Mar 25 Python
Python实现快速计算词频功能示例
Jun 25 Python
基于Python实现用户管理系统
Feb 26 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
Pytorch环境搭建与基本语法
Jun 03 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
python 如何引入协程和原理分析
Nov 30 Python
python前后端自定义分页器
Apr 13 Python
Python获取当前路径实现代码
May 08 #Python
Django自定义分页与bootstrap分页结合
Feb 22 #Python
利用python写个下载teahour音频的小脚本
May 08 #Python
通过源码分析Python中的切片赋值
May 08 #Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 #Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 #Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 #Python
You might like
php中的登陆login
2007/01/18 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
php命令行写shell实例详解
2018/07/19 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
Django中Middleware中的函数详解
2019/07/18 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
厨师长岗位职责
2014/03/02 职场文书
工作评语大全
2014/04/26 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
班级出游活动计划书
2014/08/15 职场文书
公司租房协议书
2014/10/14 职场文书
2014年药店工作总结
2014/11/20 职场文书
商场营业员岗位职责
2015/04/14 职场文书
今日说法观后感
2015/06/08 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle