网站渗透常用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利用beautifulSoup实现爬虫
Sep 29 Python
python文件与目录操作实例详解
Feb 22 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
Python当中的array数组对象实例详解
Jun 12 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
Python headers请求头如何实现快速添加
Nov 03 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
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
容易被忽略的JS脚本特性
2011/09/13 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
python 简单的多线程链接实现代码
2016/08/28 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python文件操作基本流程代码实例
2017/12/11 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
诚信贷款承诺书
2014/05/30 职场文书
广播体操比赛口号
2014/06/10 职场文书
小学安全汇报材料
2014/08/14 职场文书
公司授权委托书样本
2014/09/15 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2016教师国培研修感言
2015/12/08 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
MySQL 服务和数据库管理
2021/11/11 MySQL
搭建Yolov5服务器
2022/04/30 Servers