xray子域名扫描结果导出

admin 2022年6月8日06:44:56评论150 views字数 2348阅读7分49秒阅读模式

介绍

众所周知xray是可以进行子域名爆破、查询的,但是导出来的是html,不利于我部署自动化任务

而且出来的结果,有的是类似泛解析一样的,比如访问a网页会跳转到c网页,访问b网页也会跳转到c网页,c网页是专门用来处理访问不到页面后跳转的,所以专门写了个脚本来导出,并且清理数据

这个脚本只导出http状态码为200的,有需要可以自行添加

正文

先导入所需要的库

1import sys
2import re
3import os
4import time
5import requests

首先获取文件名

1...
2#判断是否存在文件名
3try:
4    filename = sys.argv[1]
5    #w_filename=sys.argv[2]
6except:
7    print("Usage: python Elapse.py <subdomain file> #d<saved file name>")
8    time.sleep(3)
9    sys.exit(0)

xray中查询子域名导出的html,一份只能有500个子域名,多了的话,就会新保存一个文件,并且命名500-filename.html,每次多500

xray子域名扫描结果导出

所以写一个自动往下查询的

 1#检测文件是否存在,并自动往后查询
2def check_file(filename):
3    filelist=[]
4    #判断是否存在类似500-sub.html的格式
5    file_num=re.findall('(d*)-.*.html',filename)
6    if file_num:
7        num=int(file_num[0])
8        initfile=filename.replace(str(num)+"-",'')
9    else:
10        #如果没有,那就初始化为0
11        num=0
12    while True:
13        a=os.path.isfile(filename)
14        if a:
15            filelist.append(filename)
16            num+=500
17            filename=str(num)+"-"+initfile
18        else:
19
20            print("文件: "+filename+" 不存在,正在导出列表...")
21            return filelist 

因为有的时候可能是从500-sub.html开始查询,所以写了个正则匹配这个格式,有的话,那就保存你当前的数字,然后下一次加500

接着开始主体

1...
2checkexist=check_file(filename)
3num=1
4for forname in checkexist:
5    w_filename="result-"+str(num)+".txt"
6    sub_file = open(forname,"r",encoding="utf-8")
7    write_file=open(w_filename,"a",encoding='UTF-8')

保存的文件也理所当然的需要用变

 1...
2    #sub用于判断是否重复
3    sub=[]
4
5    for i in sub_file:
6        # 无脑匹配url和状态码和title
7        result=re.findall(r'{"link":"(.*?)","status":(.*?),"title":"(.*?)","server',i)
8        try:
9            url=result[0][0]
10            http_code=result[0][1]
11            title=result[0][2]
12            if http_code != "200":
13                print("状态码非200,正在跳过处理...")
14                continue
15            repeat=findurl(url)
16            if repeat in sub:
17                print("检测到302跳转后类似泛解析,正在跳过处理...")
18            else:
19                sub.append(repeat)
20                write_file.write(url+"n")
21                print("成功写入一条数据...")
22                print("url: "+url+" code: "+http_code+" title: "+title)
23        except:
24            print("这行未检测到内容...")
25            #traceback.print_exc()
26            pass
27
28    sub_file.close()
29    write_file.close()
30    num+=1


github:https://github.com/Ernket/xray_subdomain_export


最后祝各位中秋节、国庆节快乐

原文始发于微信公众号(E条咸鱼):xray子域名扫描结果导出

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月8日06:44:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   xray子域名扫描结果导出http://cn-sec.com/archives/1022663.html

发表评论

匿名网友 填写信息