Xray批量化自动扫描
关于Xray高级版破解:
不过好像新版本的Xray修复了破解的BUG,亲测Xray1.3.3高级版仍然可以破解
因为Xray没有批量化的选项,在网上查了一下,fofa2Xray是封装好了的EXE文件,其他的好像需要配置代理之类的,反正挺麻烦,我只是想从txt里面按行读取URL进行扫描,所以昨晚上花半个小时自己写了一个小脚本实现Xray自动化批量扫描。
首先是一个大LOGO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <code - pre class = "code-pre" id = "pre-3XeAxc" ><code - line class = "line-numbers-rows" >< / code - line> def logo(): <code - line class = "line-numbers-rows" >< / code - line> logo = ''' <code-line class="line-numbers-rows"></code-line> _ __ _ __ _ __ <code-line class="line-numbers-rows"></code-line>| '_ \| '_ \| '_ \ <code-line class="line-numbers-rows"></code-line>| |_) | |_) | |_) | <code-line class="line-numbers-rows"></code-line>| .__/| .__/| .__/ <code-line class="line-numbers-rows"></code-line>| | | | | | <code-line class="line-numbers-rows"></code-line>|_| |_| |_| <code-line class="line-numbers-rows"></code-line> __ __ <code-line class="line-numbers-rows"></code-line> \ \ / / <code-line class="line-numbers-rows"></code-line> \ V / _ __ __ _ _ _ <code-line class="line-numbers-rows"></code-line> / \| '__/ _` | | | | <code-line class="line-numbers-rows"></code-line> / /^\ \ | | (_| | |_| | <code-line class="line-numbers-rows"></code-line> \/ \/_| \__,_|\__, | <code-line class="line-numbers-rows"></code-line> __/ | <code-line class="line-numbers-rows"></code-line> |___/ <code-line class="line-numbers-rows"></code-line> v1.0 <code-line class="line-numbers-rows"></code-line> author:springbird <code-line class="line-numbers-rows"></code-line> ''' <code - line class = "line-numbers-rows" >< / code - line> return logo< / code - pre> |
将Xray高级版破解之后路径配置在环境变量里,这样我们这个代码就不需要固定位置放置
核心是
1 2 3 4 5 | <code - pre class = "code-pre" id = "pre-7wn2ks" ><code - line class = "line-numbers-rows" >< / code - line> def xrayScan(targeturl,outputfilename = "test" ): <code - line class = "line-numbers-rows" >< / code - line> scanCommand = "xray.exe webscan --basic-crawler {} --html-output {}.html" . format (targeturl,outputfilename) <code - line class = "line-numbers-rows" >< / code - line> print (scanCommand) <code - line class = "line-numbers-rows" >< / code - line> os.system(scanCommand) <code - line class = "line-numbers-rows" >< / code - line> return < / code - pre> |
os.system执行命令进行扫描,这样就实现了单个URL的脚本扫描,接着是读取TXT实现批量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <code - pre class = "code-pre" id = "pre-MsBxWy" ><code - line class = "line-numbers-rows" >< / code - line> def pppGet(): <code - line class = "line-numbers-rows" >< / code - line> f = open ( "target.txt" ) <code - line class = "line-numbers-rows" >< / code - line> lines = f.readlines() <code - line class = "line-numbers-rows" >< / code - line> pattern = re. compile (r '^http://' ) <code - line class = "line-numbers-rows" >< / code - line> for line in lines: <code - line class = "line-numbers-rows" >< / code - line> try : <code - line class = "line-numbers-rows" >< / code - line> if not pattern.match(line.strip()): <code - line class = "line-numbers-rows" >< / code - line> targeturl = "http://" + line.strip() <code - line class = "line-numbers-rows" >< / code - line> else : <code - line class = "line-numbers-rows" >< / code - line> targeturl = line.strip() <code - line class = "line-numbers-rows" >< / code - line> print (targeturl.strip()) <code - line class = "line-numbers-rows" >< / code - line> outputfilename = hashlib.md5(targeturl.encode( "utf-8" )) <code - line class = "line-numbers-rows" >< / code - line> xrayScan(targeturl.strip(), outputfilename.hexdigest()) <code - line class = "line-numbers-rows" >< / code - line> # print(type(line)) <code - line class = "line-numbers-rows" >< / code - line> except Exception as e: <code - line class = "line-numbers-rows" >< / code - line> print (e) <code - line class = "line-numbers-rows" >< / code - line> pass <code - line class = "line-numbers-rows" >< / code - line> f.close() <code - line class = "line-numbers-rows" >< / code - line> print ( "Xray Scan End~" ) <code - line class = "line-numbers-rows" >< / code - line> return < / code - pre> |
这里的代码就是从文件里面读取URL,依次放在Xray里面进行扫描,放置待扫描URL的txt的名字为target.txt
最终完整代码为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | <code - pre class = "code-pre" id = "pre-dzxtG7" ><code - line class = "line-numbers-rows" >< / code - line> import os <code - line class = "line-numbers-rows" >< / code - line> import hashlib <code - line class = "line-numbers-rows" >< / code - line> import re <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> def logo(): <code - line class = "line-numbers-rows" >< / code - line> logo = ''' <code-line class="line-numbers-rows"></code-line> _ __ _ __ _ __ <code-line class="line-numbers-rows"></code-line>| '_ \| '_ \| '_ \ <code-line class="line-numbers-rows"></code-line>| |_) | |_) | |_) | <code-line class="line-numbers-rows"></code-line>| .__/| .__/| .__/ <code-line class="line-numbers-rows"></code-line>| | | | | | <code-line class="line-numbers-rows"></code-line>|_| |_| |_| <code-line class="line-numbers-rows"></code-line> __ __ <code-line class="line-numbers-rows"></code-line> \ \ / / <code-line class="line-numbers-rows"></code-line> \ V / _ __ __ _ _ _ <code-line class="line-numbers-rows"></code-line> / \| '__/ _` | | | | <code-line class="line-numbers-rows"></code-line> / /^\ \ | | (_| | |_| | <code-line class="line-numbers-rows"></code-line> \/ \/_| \__,_|\__, | <code-line class="line-numbers-rows"></code-line> __/ | <code-line class="line-numbers-rows"></code-line> |___/ <code-line class="line-numbers-rows"></code-line> v1.0 <code-line class="line-numbers-rows"></code-line> author:springbird <code-line class="line-numbers-rows"></code-line> ''' <code - line class = "line-numbers-rows" >< / code - line> return logo <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> def xrayScan(targeturl,outputfilename = "test" ): <code - line class = "line-numbers-rows" >< / code - line> scanCommand = "xray.exe webscan --basic-crawler {} --html-output {}.html" . format (targeturl,outputfilename) <code - line class = "line-numbers-rows" >< / code - line> print (scanCommand) <code - line class = "line-numbers-rows" >< / code - line> os.system(scanCommand) <code - line class = "line-numbers-rows" >< / code - line> return <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> # def test(): <code - line class = "line-numbers-rows" >< / code - line> # pattern = re.compile(r'^http://') <code - line class = "line-numbers-rows" >< / code - line> # m = pattern.match('http://www.baidu.com') <code - line class = "line-numbers-rows" >< / code - line> # n = pattern.match('hta') <code - line class = "line-numbers-rows" >< / code - line> # print(m) <code - line class = "line-numbers-rows" >< / code - line> # print(n) <code - line class = "line-numbers-rows" >< / code - line> # return <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> def pppGet(): <code - line class = "line-numbers-rows" >< / code - line> f = open ( "target.txt" ) <code - line class = "line-numbers-rows" >< / code - line> lines = f.readlines() <code - line class = "line-numbers-rows" >< / code - line> pattern = re. compile (r '^http://' ) <code - line class = "line-numbers-rows" >< / code - line> for line in lines: <code - line class = "line-numbers-rows" >< / code - line> try : <code - line class = "line-numbers-rows" >< / code - line> if not pattern.match(line.strip()): <code - line class = "line-numbers-rows" >< / code - line> targeturl = "http://" + line.strip() <code - line class = "line-numbers-rows" >< / code - line> else : <code - line class = "line-numbers-rows" >< / code - line> targeturl = line.strip() <code - line class = "line-numbers-rows" >< / code - line> print (targeturl.strip()) <code - line class = "line-numbers-rows" >< / code - line> outputfilename = hashlib.md5(targeturl.encode( "utf-8" )) <code - line class = "line-numbers-rows" >< / code - line> xrayScan(targeturl.strip(), outputfilename.hexdigest()) <code - line class = "line-numbers-rows" >< / code - line> # print(type(line)) <code - line class = "line-numbers-rows" >< / code - line> except Exception as e: <code - line class = "line-numbers-rows" >< / code - line> print (e) <code - line class = "line-numbers-rows" >< / code - line> pass <code - line class = "line-numbers-rows" >< / code - line> f.close() <code - line class = "line-numbers-rows" >< / code - line> print ( "Xray Scan End~" ) <code - line class = "line-numbers-rows" >< / code - line> return <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> def main(): <code - line class = "line-numbers-rows" >< / code - line> print (logo()) <code - line class = "line-numbers-rows" >< / code - line> pppGet() <code - line class = "line-numbers-rows" >< / code - line> return <code - line class = "line-numbers-rows" >< / code - line> <code - line class = "line-numbers-rows" >< / code - line> if __name__ = = '__main__' : <code - line class = "line-numbers-rows" >< / code - line> main()< / code - pre> |
运行截图为:
__EOF__

本文作者:春告鳥
本文链接:https://www.cnblogs.com/Cl0ud/p/14001908.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Cl0ud/p/14001908.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!