网站渗透常用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画圆功能
Jan 25 Python
儿童python练习实例
May 27 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
python实现的读取网页并分词功能示例
Oct 29 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 Python
Python多分支if语句的使用
Sep 03 Python
python基于openpyxl生成excel文件
Dec 23 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
利用Python实现Picgo图床工具
Nov 23 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中使用匿名函数操作数据库的例子
2014/11/17 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
php获取excel文件数据
2017/04/21 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
Python写的一个简单DNS服务器实例
2014/06/04 Python
Python之eval()函数危险性浅析
2014/07/03 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
护理专业本科生自荐信
2013/10/01 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
学生出入校管理制度
2014/01/16 职场文书
产品质量承诺书
2014/03/27 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
公司处罚决定书
2015/06/24 职场文书
八年级作文之感恩
2019/11/22 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技