网站渗透常用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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
使用python编写监听端
Apr 12 Python
Python中的集合介绍
Jan 28 Python
django实现支付宝支付实例讲解
Oct 17 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
Python之Class&amp;Object用法详解
Dec 25 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
python实现人像动漫化的示例代码
May 17 Python
python基础之类属性和实例属性
Oct 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
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
php验证手机号码
2015/11/11 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
js实现自定义路由
2017/02/04 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
浅谈手写node可读流之流动模式
2018/06/01 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
创业计划书的主要内容有哪些
2014/01/29 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
企业公益活动策划方案
2014/08/24 职场文书
质检员工作总结2015
2015/04/25 职场文书
未婚证明格式
2015/06/15 职场文书
大学生见习总结报告
2015/06/24 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android