网站渗透常用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 27 Python
Python中的TCP socket写法示例
May 11 Python
浅谈django的render函数的参数问题
Oct 16 Python
python 自动重连wifi windows的方法
Dec 18 Python
详解使用python绘制混淆矩阵(confusion_matrix)
Jul 14 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
python munch库的使用解析
May 25 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
安装dbus-python的简要教程
2015/05/05 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Django使用rest_framework写出API
2020/05/21 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
劳资人员岗位职责
2013/12/19 职场文书
环保建议书300字
2014/05/14 职场文书
英文邀请函
2015/02/02 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
python OpenCV学习笔记
2021/03/31 Python
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
Java基于字符界面的简易收银台
2021/06/26 Java/Android