Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
XRay旅行记 - 从内部项目到社区项目的蜕变
Search
phithon
October 19, 2019
Technology
0
3.3k
XRay旅行记 - 从内部项目到社区项目的蜕变
XRay是一款Web应用漏洞检测工具:
https://github.com/chaitin/xray
phithon
October 19, 2019
Tweet
Share
More Decks by phithon
See All by phithon
CTF比赛总是输?你还差点Tricks!
phith0n
3
4k
小密圈里的那些奇技淫巧
phith0n
3
13k
Some Tricks From My Secret Group
phith0n
0
10k
Other Decks in Technology
See All in Technology
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
Lambdaと地方とコミュニティ
miu_crescent
2
370
TypeScript、上達の瞬間
sadnessojisan
46
13k
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Lexical Analysis
shigashiyama
1
150
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Docker and Python
trallard
40
3.1k
A better future with KSS
kneath
238
17k
A designer walks into a library…
pauljervisheath
203
24k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Producing Creativity
orderedlist
PRO
341
39k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Transcript
XRay旅⾏记 从内部项⽬到社区项⽬的蜕变
XRay诞⽣记 做XRay前,我们是怎么考虑的 2 1.
“ 在大部分厂商的扫描器只给商业用户使用 的情况下, 为什么我们要做XRay社区版? 3
为什么要做XRay社区版 » 在大部分厂商的扫描器只给商业用户使用的情况下,为什么我们要做XRay社区版? » 扫描器社区版的优势 » 更多的功能建议 » 更多的Bug反馈 »
经营洞鉴的口碑 » 创造与分享 » 同时,社区版的开发也是老版本洞鉴升级的动力和契机 4
Python版⼤型扫描器在实践中的问题 XRay的前身是洞鉴的Python版引擎 » 弱类型问题 » 弱类型导致多人协作过程中时常出现各种bug » 大部分第三方库没有普及type hinting,不同写法掺杂在一起很难推广 »
效率问题 » 立项时就考虑使用异步框架(asyncio)解决效率问题 » 大型项目很难保证asyncio的事件循环能健康稳定地运行,一处卡住,所有地 方都卡住 5
Python版⼤型扫描器在实践中的问题 » 技术难题 » Python实现线/协程间通信的方法过于底层(队列、锁、事件),对开发者要 求过高,很难写出非常完美的方案 » 社区版源代码保护难题 » 社区问题
» 社区中Python的POC很多,但大部分代码质量是没法直接拿来使用的 » Python社区人数更多,但水平参差不齐 » Python语法过于灵活,更加放大了很多人代码中的缺陷 6
为什么选择使⽤Go开发社区版 » 为什么Go比Python更好? » 为什么Go更适合做新版XRay的开发? » 语法规范,入门容易 » 强类型检查,大部分错误在编译阶段已经解决,适合团队大型项目 »
效率非常高,十分适合网络扫描器场景 » 内置的goroutine、channel让并发编程变得无比简单 » 保护源码,适合社区发布 » 部署分发方便,一个二进制文件即可使用 7
说⼲就⼲! 8
XRay诞⽣记 快速诞生的XRay,不停打磨的XRay 9 2.
⼀个完整的Web漏洞扫描器 基础库 » HTTP请求库 » 代理算法 » 去重算法 » 反连平台
» 指纹识别 » 爬⾍ » 漏洞测试靶场 » 命令⾏接⼝ » …… 漏洞检测 » SQL注⼊ » XSS » 命令与代码执⾏ » ⽂件上传 » 弱⼝令爆破 » ⽬录穿越 » 敏感信息泄露 » 任意链接跳转 » …… 架构设计 » 异步任务流程 » 通⽤插件框架 » POC框架 » 单元测试与持续集成框 架 » 检测报告框架 » …… 10
⽤Python开发扫描器 » SQL注⼊:Sqlmap » XSS:XSStrike » 模板注⼊扫描:tplscan » ⽬录扫描:BBScan »
⼦域名扫描:subDomainsBrute » 漏洞框架:Pocsuite、xunfeng » ... 我们遇到过的那些难点 ⽤Go开发扫描器 » SQL注⼊:⾃⼰开发 » XSS:⾃⼰开发 » 模板注⼊扫描:⾃⼰开发 » ⽬录扫描:⾃⼰开发 » ⼦域名扫描:⾃⼰开发 » 漏洞框架:⾃⼰开发 » ... 11 难点:⼀切轮⼦都需要⾃⼰造
我们遇到过的那些难点 难点:一切轮子都需要自己造 » SQL注入模块 » 参考SQLMap » 难点:请求数量、准确率、召回率之间的平衡 » XSS模块
» 全自研算法 » 对前端HTML、JS、CSS代码进行语义分析,减少大量误报 » 难点:DOM型XSS检测 12
我们遇到过的那些难点 » 目录枚举模块 » 全自研算法 » 字典引入表达式机制,对HTTP返回进行动态匹配,减少误报 » 难点:渗透测试经验的积累 »
弱口令爆破模块 » 全自研算法 » 对大量常见服务、Web弱口令进行自动化爆破 » 难点:识别登录请求、字典的优化 13
我们遇到过的那些难点 难点:不开源的XRay,如何让社区参与编写POC? 结构化漏洞检测框架:Phantasm » 以类似于构造HTTP数据包的方式编写POC » 最适合人类阅读的结构化格式 è YAML »
以表达式的形式判断漏洞存在与否 è 解决其他JSON格式漏洞框架不灵活的问题 问题:服务型非HTTP协议漏洞如何检测? 14
传统Python开发POC框架 XRay POC框架Phantasm 灵活性 ⾮常灵活 灵活性较低,但满⾜⼤多数场景 编写难度 需要⼀定Python基础 ⽆需代码基础 POC质量
社区POC代码质量不⼀ 格式简单,统⼀规范,质量⾼ 理解难度 ⾼,理解代码后才能看懂漏洞 低,类似数据包的形式展⽰漏洞 我们遇到过的那些难点 一个结构化漏洞检测框架 è Phantasm 15
我们遇到过的那些难点 难点:相比于Burpsuite,XRay因为没有界面,无法主动选择待检测的数据包…… passive-scan-client - https://github.com/c0ny1/passive-scan-client 16
⼭⾼⽽路远,还有更多难点需要克服…… 17
XRay诞⽣记 XRay发展与展望…… 18 3.
平时挂着XRay上⽹ 19
也可以专⻔⽤来刷SRC 20
也可以给客⼾做服务 21
XRay发展计划 更加精细化的漏洞检测模块: » 大型CMS相关检测:Wordpress/Discuz/Joomla/Drupal…… » 常见框架漏洞检测:ThinkPHP/Struts2/Spring/Django/Laravel/Flask…… » Java反序列化漏洞检测 » 特殊漏洞检测(Cache
Deception、Cache Poisoning、HTTP Desync) » …… 22
XRay发展计划 更加贴近社区 » 提交POC奖励机制 » 学生激励(面试机会、实习offer) » 安全从业者交流平台 » 资源共享
» …… 23
加⼊我们 » 加⼊我们 » 安全⼯程师(安全研究⽅向) » 安全开发⼯程师(⼯程转化⽅向) » 后端开发⼯程师 »
系统研发⼯程师 » 策略产品经理 » 业务产品经理 » 详情:https://mp.weixin.qq.com/s/oUZ9rUJxDfGQk_VTp59tRw 24