网站渗透常用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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
python开发之thread线程基础实例入门
Nov 11 Python
如何将python中的List转化成dictionary
Aug 15 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
python读取Excel表格文件的方法
Sep 02 Python
centos7中安装python3.6.4的教程
Dec 11 Python
浅谈django 模型类使用save()方法的好处与注意事项
Mar 28 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
Scrapy实现模拟登录的示例代码
Feb 21 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
实例讲解php数据访问
2016/05/09 PHP
php给数组赋值的实例方法
2019/09/26 PHP
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
python实现比较两段文本不同之处的方法
2015/05/30 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
python安装requests库的实例代码
2019/06/25 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Django学习之文件上传与下载
2019/10/06 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
国际政治个人自荐信范文
2013/11/26 职场文书
天网工程实施方案
2014/03/26 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2015年双拥工作总结
2015/04/08 职场文书
大国崛起观后感
2015/06/02 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js