网站渗透常用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实现多行注释的另类方法
Aug 22 Python
用python读写excel的方法
Nov 18 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
利用Python如何生成hash值示例详解
Dec 20 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
Python中文编码知识点
Feb 18 Python
python实现AES加密和解密
Mar 27 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
Jun 05 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
python定时执行指定函数的方法
2015/05/27 Python
浅谈Python peewee 使用经验
2017/10/20 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
python 装饰器的基本使用
2021/01/13 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
服务宗旨标语
2014/07/01 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
民事诉讼代理词
2015/05/25 职场文书
休假证明书
2015/06/24 职场文书