OSCE3之路 - OSWE | WEB300
在2022年1月我拿到了OSCE3,OSWE是我在21年4月拿到的,本篇我们来介绍WEB300-OSWE,它是关于OffSec关于Exploit Development的第一个认证。
对于一些更加基础的信息,如报名问题、网络问题,请参阅OSCP篇
OffSec的所有认证都没有前置要求,如果不想考OSCP直接考OSWE,完全是可以的
基本信息
有关WEB300-OSWE证书的官方最新信息位于这里:https://www.offensive-security.com/awae-oswe
报名方式和费用
对于个人用户,目前Offensive Security(后称OffSec)提供了2种购买方式
Packages
Subscriptions - 订阅制
####Packages
目前来说OSWE是Packages购买方式300系列中最贵的,均价高150美元
- 课程 + 60天Lab + 1次OSWE考试 1449美元
- 课程 + 90天Lab + 1次OSWE考试 1649美元
- 重考费:249美元
- 30天Lab延长:359美元
- 60天Lab延长:599美元
- 90天Lab延长:799美元
Subscriptions
Learn One套餐(2499美元): WEB300-OSWE课程 + 2次OSWE考试机会 + PEN210-OSWP课程 + 1次OSWP考试机会 + 365天Lab + PEN100课程 + KLCP课程 + 1次KLCP考试机会 + PG Practice会员
Learn Unlimited套餐(5499美元): OffSec所有课程 + 365天Lab + 无限次考试机会(受冷静期约束) + PG Practice会员
个人建议
可以发现300系列的套餐没有30天套餐,建议学习时间比较充沛的可以选择60天Lab,如果平时事情比较忙,可以考虑90天的Lab,由于我空闲时间比较充足,我的OSEP和OSED都是选择的60天套餐以节约时间,由于我的主要学习方向是Web安全,因此OSWE则是选择了更便宜的30天套餐(此套餐已经退役,并且大概率不会再出)
如何报名参加OffSec的认证与课程请阅读PEN200-OSCP篇
300系列横向比较
OSWE是300系列中存在时间最长的认证,相较于PEN系列注重于黑盒,OSWE则注重的是Web安全方向的白盒审计,虽然由于我主攻方向是Web方向,OSWE是我最轻松拿下的证书,但是综合比较而言,我认为在思维难度上,OSWE应该是300系列最高的,虽然OSED也是半白盒开发exploit,也许是因为推出时间较短,还没有进化出思维难度比较高的题目
如何预习
首先建议大家打好编程语言的基础
- PHP
- Java Web
- NodeJS
- ASP.Net(C#)
- Python
除了语言之外,根据官方的PREREQUISITES,还需要以下能力
- 熟悉Linux
- 熟悉Web代理
- 基本了解Web应用的攻击向量、理论和实践
可以发现,对于Web开发转安全或者曾经在CTF中担任Web手的同学,OSWE应该是OffSec系列认证中最容易的
但是由于OSWE着重于白盒审计,和CTF的Web侧重点还是有些差别的
基础打扎实之后,推荐一下Web安全的教程,内容非常全面,如果时间有限的话,可以参考课程大纲有针对性地预习
https://portswigger.net/web-security/all-materials
WEB-300的课程大纲:awae-syllabus.pdf (offensive-security.com)
稍微详细地看的话,可以发现大多以真实例子进行讲解,WEB300和EXP301都是研究Exploit Development(EXP开发)的,因此都采用实例进行讲解,因此我认为掌握好了上面的编程基础知识和Web漏洞基础知识,就可以正式开启课程了
之前提供了OSCP like靶机清单的列表也提供了OSWE like的清单,我没有去练过,如果大家预习时间比较多,可以考虑去练习一下
关于课程
课程中的几个重要资源如下
- 教材 PDF版本和视频版本,建议阅读PDF,效率更高,看不懂的地方看视频操作即可
- Lab 提供了最贴近考试的各种靶机环境,由于WEB300的教材以实例讲解,Lab中也提供了教材的配套靶机,除此之外还有几个供学生练习的Challenge,Challenge以白盒为主,有少量黑盒题,但是考试只考查白盒
- 300系列的学生靶机为每个学生独享,与OSCP的所有学生共享不同
- 学生论坛 里面提供了各种Lab机器的提示以及讨论,并且在官方管理员的控制下不会有答案泄漏
- 官方Discord频道 相比论坛为学生们提供了更便捷的实时讨论,学生注册后,在https://portal.offensive-security.com/中可以获取到邀请链接
WEB300-OSWE课程的学习方式比较单调,我的学习方法就是边看PDF边练习,把教材里的实例都练习完之后,基本就掌握得差不多了,这可能是因为我有在CTF做Web题的经验导致的,此课程对我来说并没有很高的难度
随后开始刷Web题目,对于没有Web安全经验的同学来说可能会有些难度,可以去官方discord提问,同学都比较热情。只要是教材教到的漏洞都有可能考查,包括有些同学觉得不会出的CSRF这种客户端攻击或者碰撞攻击,事实上在Exam如果没有考到也只是个人没有考到,越是觉得不会考的反倒喜欢考
对于WEB300-OSWE和EXP301-OSED,我都强烈建议边学习边总结思维导图,这对于巩固学习以及在考试中思考攻击路径都极有帮助
关于考试
官方的考试指引:OSWE Exam Guide – Offensive Security Support Portal (offensive-security.com)
300系列的考试时长均为48小时
考试考查的是手工白盒审计,因此各种自动化工具就不要想着使用了,每道题目会提供2台机器,2台机器除了密码不一样完全一样,一台用于给学生获取源代码并分析,另一台用来获取Proof
每道题目分为两个考查阶段,第一阶段为Bypass Login,也就是利用Web攻击登录到网站后台,此为第一阶段,第二阶段则为RCE,就是要通过Web服务拿到主机的Shell,不需要提权,拿到Shell后就能拿到这个机器的满分
考试的满分是100分,85分通过,总共2台机器,第一阶段35分,第二阶段15分,这意味着2台机器的Bypass Login都必须成功,RCE倒是只需要完成其中一台即可,我当时由于考试空余时间比较多,拿到满分+写完报告花的时间还不到20小时,因此就全部搞定了
拿到所有Proof后还要编写一个Exploit,用于自动化完成攻击,建议使用Python3
考察范围就是教材教到过的所有漏洞类型或组合利用,不要问别人考试考了什么漏洞,每个人考察到的都是不同的
相比于教材都是使用真实案例做例子,考试则全部使用OffSec自行开发的题目,涉及到的代码语言每个人考到的都不同
写在最后
如果你想要了解的信息文章中没有提到,欢迎发邮件给我一起交流,也欢迎加个好友,通过邮件发送联系方式给我即可
OSCE3之路 - OSWE | WEB300