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
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
250
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
500
The Role of Developer Relations in AI Product Success.
giftojabu1
1
130
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Scaling GitHub
holman
458
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
A designer walks into a library…
pauljervisheath
204
24k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
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