Xray批量化自动扫描
关于Xray高级版破解:
不过好像新版本的Xray修复了破解的BUG,亲测Xray1.3.3高级版仍然可以破解
因为Xray没有批量化的选项,在网上查了一下,fofa2Xray是封装好了的EXE文件,其他的好像需要配置代理之类的,反正挺麻烦,我只是想从txt里面按行读取URL进行扫描,所以昨晚上花半个小时自己写了一个小脚本实现Xray自动化批量扫描。
首先是一个大LOGO
def logo():
logo='''
_ __ _ __ _ __
| '_ \| '_ \| '_ \
| |_) | |_) | |_) |
| .__/| .__/| .__/
| | | | | |
|_| |_| |_|
__ __
\ \ / /
\ V / _ __ __ _ _ _
/ \| '__/ _` | | | |
/ /^\ \ | | (_| | |_| |
\/ \/_| \__,_|\__, |
__/ |
|___/
v1.0
author:springbird
'''
return logo
将Xray高级版破解之后路径配置在环境变量里,这样我们这个代码就不需要固定位置放置
核心是
def xrayScan(targeturl,outputfilename="test"):
scanCommand="xray.exe webscan --basic-crawler {} --html-output {}.html".format(targeturl,outputfilename)
print(scanCommand)
os.system(scanCommand)
return
os.system执行命令进行扫描,这样就实现了单个URL的脚本扫描,接着是读取TXT实现批量
def pppGet():
f = open("target.txt")
lines = f.readlines()
pattern = re.compile(r'^http://')
for line in lines:
try:
if not pattern.match(line.strip()):
targeturl="http://"+line.strip()
else:
targeturl=line.strip()
print(targeturl.strip())
outputfilename=hashlib.md5(targeturl.encode("utf-8"))
xrayScan(targeturl.strip(), outputfilename.hexdigest())
# print(type(line))
except Exception as e:
print(e)
pass
f.close()
print("Xray Scan End~")
return
这里的代码就是从文件里面读取URL,依次放在Xray里面进行扫描,放置待扫描URL的txt的名字为target.txt
最终完整代码为:
import os
import hashlib
import re
def logo():
logo='''
_ __ _ __ _ __
| '_ \| '_ \| '_ \
| |_) | |_) | |_) |
| .__/| .__/| .__/
| | | | | |
|_| |_| |_|
__ __
\ \ / /
\ V / _ __ __ _ _ _
/ \| '__/ _` | | | |
/ /^\ \ | | (_| | |_| |
\/ \/_| \__,_|\__, |
__/ |
|___/
v1.0
author:springbird
'''
return logo
def xrayScan(targeturl,outputfilename="test"):
scanCommand="xray.exe webscan --basic-crawler {} --html-output {}.html".format(targeturl,outputfilename)
print(scanCommand)
os.system(scanCommand)
return
# def test():
# pattern = re.compile(r'^http://')
# m = pattern.match('http://www.baidu.com')
# n = pattern.match('hta')
# print(m)
# print(n)
# return
def pppGet():
f = open("target.txt")
lines = f.readlines()
pattern = re.compile(r'^http://')
for line in lines:
try:
if not pattern.match(line.strip()):
targeturl="http://"+line.strip()
else:
targeturl=line.strip()
print(targeturl.strip())
outputfilename=hashlib.md5(targeturl.encode("utf-8"))
xrayScan(targeturl.strip(), outputfilename.hexdigest())
# print(type(line))
except Exception as e:
print(e)
pass
f.close()
print("Xray Scan End~")
return
def main():
print(logo())
pppGet()
return
if __name__ == '__main__':
main()
运行截图为:

其实这个批量的功能还是挺重要的,或许是Xray开发团队不想扫描器被滥用的原因才没有实现该功能,把代码放在了github上:
https://github.com/Cl0udG0d/pppXray
Xray批量化自动扫描的更多相关文章
- 你的应用安全吗? ——用Xray和Synk保驾护航
一.背景 在当下软件应用的开发过程当中,自研的内部代码所占的比例逐步地减少,开源的框架和共用库已经得到了广泛的引用.如下图所示,在一个Kubernetes部署的应用当中,我们自己开发代码所占的比例可能 ...
- ARL资产导出对接Xray扫描
使用ARL资产灯塔系统对目标进行资产整理的时候,能够对获取的结果进行导出: 导出之后为excel文件 想要将site中的URL导出为txt文件,再使用Xray高级版进行批量化扫描: https://w ...
- xray—学习笔记
长亭xray扫描器 简介 xray (https://github.com/chaitin/xray) 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动.被动多种扫描方式,自备盲打平台.可以 ...
- Xray学习
Xray 目前支持的漏洞检测类型包括: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd-injection) 目录枚举 (k ...
- spring自动扫描、DispatcherServlet初始化流程、spring控制器Controller 过程剖析
spring自动扫描1.自动扫描解析器ComponentScanBeanDefinitionParser,从doScan开始扫描解析指定包路径下的类注解信息并注册到工厂容器中. 2.进入后findCa ...
- Spring常用注解,自动扫描装配Bean
1 引入context命名空间(在Spring的配置文件中),配置文件如下: xmlns:context="http://www.springframework.org/schema/con ...
- SpringMVC自动扫描@Controller注解的bean
若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...
- Spring的自动扫描与管理
通过在classpath自动扫描方式把组件纳入spring容器中管理 前面的例子我们都是使用XML的bean定义来配置组件.在一个稍大的项目中,通常会有上百个组件,如果这些这组件采用xml的bean定 ...
- 自动扫描FTP文件工具类 ScanFtp.java
package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
随机推荐
- Linux下Flask环境
一,安装python3.6.4 wget http://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz tar -xvzf Python-3.6.4. ...
- MyBatis动态Sql之if标签的注意事项
if标签的test属性必填,该属性值是一个符合OGNL要求的判断表达式,一般只用true或false作为结果. 判断条件property != null 或 property == null,适用于任 ...
- 手把手教你使用Vuex(三)
2.mutation属性 了解: mutation是更改Vuex的store中的状态的唯一方法.非常类似于事件,官网说的"每个mutation都有一个字符串的事件类型和一个回调函数" ...
- linux 异步I/O 信号
if (ioctl(ngx_processes[s].channel[0], FIOASYNC, &on) == -1) { ngx_log_error(NGX_LOG_ALERT, cycl ...
- Spring源码之Springboot中监听器介绍
https://www.bilibili.com/video/BV12C4y1s7dR?p=11 监听器模式要素 事件 监听器 广播器 触发机制 Springboot中监听模式总结 在SpringAp ...
- facl权限(getfacl/setfacl)
file access control list:文件访问控制列表 查看facl: [root@localhost test]# getfacl hei # file: hei # owner: ro ...
- 解决calamari无法获取节点信息的bug
前言 一直在做calamari的相关的一些打包和安装的工作,都是业余弄的东西,所以并没有仔细的进行功能点的验证测试,正好ceph社区群里面有人问了个问题 calamari上是不是能看到ceph的ver ...
- 统计数字问题(Java)
Description 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0.例如,第6 页用数字6 表示,而不是06 或006 等.数字计数问 ...
- 为什么 @Value 可以获取配置中心的值?
hello,大家好,我是小黑,好久不见~~ 这是关于配置中心的系列文章,应该会分多篇发布,内容大致包括: 1.Spring 是如何实现 @Value 注入的 2.一个简易版配置中心的关键技术 3.开源 ...
- POJ1390 Blocks (区间DP)
题目链接:POJ 1390.Blocks 题意: 有n个方块排成一列,每个方块有颜色即1到n的一个值,每次操作可以把一段相同颜色的方块拿走,长度为k,则获得的分数为 \(k\times k\),求可获 ...