OSWE—我的代码审计之路

admin 2024年6月17日14:21:00评论19 views字数 12933阅读43分6秒阅读模式
本文由掌控安全学院 - 念旧 投稿

Track安全社区投稿~  

千元稿费!还有保底奖励~(https://bbs.zkaq.cn)

0. 前言

大家好,我是 zkaq-念旧。上周,我终于获得了我梦寐以求的 OSWE 认证,然后安心过了个节,现在我也算是半只脚踏进代码审计圈了。

在本篇文章中,我将介绍有关于 OSWE 课程的信息、考试规则、解答常见疑问,以及分享我的备考经验,我将带领你一步一步拿到属于你自己的 OSWE 认证。

OSWE—我的代码审计之路

疯狂暗示

(话说社区好像没有 “证书分享” 板块,要不加一个?大家考了证都来分享分享经验和心得,争取掌控全员 OSCE3 [狗头])

疯狂暗示

1. 初识OSWE

相信很多人都认识 Offsensive Security(https://www.offsec.com/) 这家公司,毕竟你所使用的 Kali Linux 以及近年来非常热门的 OSCP 认证就是他们家的。

与 OSCP 不同的是,OSCP 主要考查的是黑盒 + 内网渗透,而 OSWE 则偏向白盒 + Web 渗透。两者之间最大的区别便是 “黑盒” 与 “白盒”。

1.1 AWAE课程

OSCP 对应的认证系列为 PEN-200,对应的课程名为 PWK,而 OSEP(PEN-300)是他的进阶版认证。

OSWE(Offensive Security Web Expert)对应的认证系列为 WEB-300(https://www.offsec.com/courses/web-300/),对应的课程名为 AWAE(Advanced Web Attacks and Exploitation)。咋一看 OSWE 和 OSEP 貌似是同一级别的,而官方也确实是这样定义的。

语言

AWAE 课程,或者说 OSWE 认证主要考查的方向是 Web 代码审计,所涉及的语言有以下六种:

序号 OSWE 考查语言
1 PHP
2 Java
3 .Net(C#)
4 NodeJS / JavaScript / TypeScript
5 Python
6 Golang

你没看错,OSWE 考查六种语言的代码审计,这还是在将 JS 合起来算的情况下。最开始的时候,OSWE 只考查前四种语言,但时代在变化。

其中 Python 貌似是前几年新增的,而 Golang 是今年新增的。我正在那学习课程呢,突然冒出个新章节,一看 woc 居然是 Golang 代码审计?太看得起我了,还好难度不算太高,能适应。

漏洞

关于课程的内容,官方给出了一个大纲(https://www.offensive-security.com/documentation/awae-syllabus.pdf),这个大纲隐藏了某些新内容,但仍然可供你进行参考。

课程所涉及的漏洞包括但不限于 SQL 注入、XSS、反序列化、XXE、SSTI、CSRF 等,对于咱们掌控安全学过正式课的人来说,应该不算太难(难的是审计)。

脚本编写能力

在该课程中,你需要通过代码审计发现多个漏洞,然后将这些漏洞结合起来形成一个利用链,以达到 GetShell 的目的。

但这还不算完,你必须将整个 GetShell 过程编写为一个 PoC 脚本,实现一键 GetShell。在考试中,即使你成功 GetShell 了,但你没有开发出这个 PoC 脚本,那你一样是零分。

用于开发 PoC 脚本的语言我推荐 Python,这也是我自己以及绝大多数考生所选择的开发语言,因为 Python 足够简单。当然,如果你想用 Ruby 或 Java 来开发 PoC 也可以,只要你对其足够熟悉。

1.2 购买课程和考试

相比较于早期,现在的 offsec 系列考试贵了很多,以前有好几档供你选择:30 天、60 天、90 天、包年等。而现在最少只能选择 90 天,30 和 60 天的已经成为了历史的长河。也许是因为 30 和 60 天的考试通过率太低,又或许是其他原因。

你可以在这个页面(https://www.offsec.com/courses/web-300/)找到购买信息:

序号 购买计划 所含内容 考试次数 费用
1 90 天 指定课程的 90 天学习权限 1 次机会 $1649(换算之后 1.2w 左右)
2 365 天 基本课程 + 指定课程的 365 天的学习权限 KLCP 考试机会(1次) + OSWP 考试机会(1次) + 指定课程考试机会(2次) $2599(换算之后 1.8w 左右)
3 包年 所有课程 + 所有考试 无限 $5799(换算之后 4w 左右)
4 更多学习 延长 30 天实验室访问权限 - $359
5 补考 考试补考 1 次机会 $249

我购买的是 90 天,三个月的时间足够你学习完所有内容,考试要是碰巧不过的话,还可以购买额外的补考机会(还好老天保佑让我一次过了)。

有的人可能想买 365 天的,毕竟可以学一年,不用担心时间不够,还有 2 次考试机会。但我觉得这并不划算,因为 KLCP 和 OSWP 认证的含金量其实并不太高,而且课程的资料都是可以下载的,你可以下载到本地慢慢看,至于实验室(靶机)你做个几遍之后应该就掌握了,不用重复去做。如果只是单纯为了考试机会而购买,那我建议你买 90 天 + 4 次补考,这样划算得多。

需要注意的是,考试并不能一直考,每次考试之间都会有一段冷静期(如果你没考过的话)。

1.3 教材和实验室

课程会提供在线的教材、视频、实验室(靶机),其中教材和视频可以下载到本地(.pdf.mp4格式),而实验室则需要购买上面提到的额外访问权限。

教材和视频都是全英文的,视频有字幕 但也是英文字幕。我看的是教材,用翻译软件一行一行的看,顺便做笔记。如果你想看视频的话,可以借助翻译软件的 “同传翻译” 功能,但是我觉得同传翻译有时候不太准确。

如果你觉得自己看不下去全英文的课程,那我建议你不要报考,免得浪费时间和金钱。

如果你的时间充足,那你可以先看一遍教材,熟悉一遍内容;然后再去看视频,看看视频里的人是如何操作的。我赶时间所以只看了教材,没看视频。

学完课程之后,你可以完成对应课程的实验室,在实际场景中应用你所学到的知识。

关于教材和视频的下载

在开通课程访问权限之后,或者课程过期之前,你可以请求下载课程资源。请求允许之后,你可以在 72 小时之内下载 PDF 教材和 MP4 视频。

值得一提的是,所下载的课程资源 和 现有的课程并不是同步的,下载下来的课程资源可能会少一些。

这一点官方在论坛上也说过,他们并不总是更新课程 PDF 和 MP4,所以晚下载并不能占到便宜。

既然如此,我建议你尽早下载课程资源,免得忘记。

还有非常重要的一点!课程内容不能外传,否则你所有的证书都会被取消,并永远拉入 offsec 的黑名单。

2. OSWE考试规则

2.1 考试时间

相关资源

  • 考试简介(https://help.offsec.com/hc/en-us/articles/360046869951-WEB-300-Advanced-Web-Attacks-and-Exploitation-OSWE-Exam-Guide#introduction)

和 OSCP 不同,报名 OSWE 课程之后,你可以立即预约考试。你有 1 次预约考试时间的机会,以及 2 次修改考试时间的机会。

考试持续时长是 47 小时 45 分钟,考试结束之后你需要在 24 小时内上传你的报告。简单来说就是 “两天做题” 和 “一天写报告”,总共三天,这会耗费你大量的精力。

对此我只能说一句:休息很重要。我这三天感觉半条命没了,睡不好吃不好,一直很紧张,生怕考不过,闭上眼睛全是代码,身心俱疲,考试结束之后缓了好久。

另外我建议提前半个月预约考试,免得你想要的考试时间被别人约走了。如果当天没有你想要的考试时间段,可以过一阵子再来看看,因为占了这个时间段的人说不定计划有变,从而留出空位给你。

2.2 考试题目

考试时会随机抽取两台机器,每台机器不同语言,分别设有 2 道题目,总共是 4 道题。题目可以分为两个类型:身份认证绕过(auth bypass)和 RCE(get shell)。

  • 你必须通过代码审计发现认证绕过漏洞,以获取管理员权限。
  • 获得管理员权限之后,你必须找到一种可以 GetShell 的方法。

考试总分 100 分,认证绕过是 35 分,GetShell 是 15 分,及格分数是 85 分。也就是说,你至少需要完成一台机器的 GetShell 和另一台机器的认证绕过才能通过考试。

每台机器上各有 2 个 FLAG,每当你完成一个步骤(身份认证绕过或 GetShell)即可得到它,获得 FLAG 之后记得在考试控制面板中提交。

另外,你还需要为每个漏洞链编写 PoC,实现一键化利用。如果你只发现了身份认证绕过漏洞,则只需要编写用于绕过身份认证的 PoC。对于 GetShell 脚本,你可以使用nc监听反弹 shell,然后手动使用cat命令来读取 FLAG 文件,官方允许你这样做。

如果你没能编写出 PoC 脚本,那么这台机器将会是 0 分。

如果你的报告里没有写出明确的攻击过程,也将会是 0 分。

2.3 考试限制

相关资源:

  • 考试限制(https://help.offsec.com/hc/en-us/articles/360046869951-WEB-300-Advanced-Web-Attacks-and-Exploitation-OSWE-Exam-Guide#exam-restrictions)

考试时不允许使用源代码审计工具(例如 Fortify)、不允许使用漏洞扫描器(包括 sqlmap),不允许使用 AI 聊天机器人(例如 ChatGPT)等限制性工具。

值得一提的是,某些付费的工具也不允许使用,例如 Nessus、BurpSuite 专业版等。

你可以使用 Nmap、Nikto、BurpSuite 社区版、目录扫描等工具,以及 msfvenom 和 ysoserial 等攻击载荷生成工具。

这些限制倒没啥,为了考试的公平公正。我建议你提前在 Kali Linux 中安装一个最新版的 BurpSuite 社区版(https://portswigger.net/burp/releases#community),然后熟悉一下操作。

2.4 考试时的代码审计形式

在考试时,你不允许下载任何源代码到你的本地机器上。你需要通过 RDP 远程连接到目标机器,上面预装了 VSCode 且配置了 Debug 环境。我建议你在自己的 Kali Linux 中安装 VSCode 并提前熟悉一下操作。

什么?你问能不能用 IDE?你都不允许下载源代码到本地,你咋用,在目标机器上装一个?这不得耗死你。

考试时提供的机器一共是 5 台:

  • 2 台考试机器,上面有 FLAG
  • 2 台 Debug 机器,环境和考试机器一样,你可以登录到 Debug 机器并进行源代码分析
  • 1 台攻击机器,方便你跑脚本(例如 SQL 盲注这类非常耗时的攻击,脚本放在上面跑的话速度会很快)

2.5 监考形式

相关资源:

  • 考前检查:https://help.offsec.com/hc/en-us/articles/360040574991-What-are-the-pre-exam-requirements-the-proctor-must-verify-before-I-start-my-exam
  • 监考工具手册:https://help.offsec.com/hc/en-us/articles/360050299352-Proctoring-Tool-Manual
  • 考试信息:https://help.offsec.com/hc/en-us/articles/360046869951-WEB-300-Advanced-Web-Attacks-and-Exploitation-OSWE-Exam-Guide#section-2-exam-information

监考前

offsec 的考试基本上都是有监考的,OSWE 也不例外。监考时使用的是你的浏览器,不需要额外安装监考软件,到时候你需要登录监考网站,通过浏览器共享摄像头和屏幕。

开考前需要验证你的身份,就是向考官出示证件,国内的身份证不行,目前已知能用的证件:护照、港澳通行证、翻译为英文的身份证扫描件。我看有的大佬貌似用驾照也行。

我建议你至少准备两个证件,一个不能用的话还有另一个。我准备的是护照和港澳通行证,考试时只用了港澳通行证,护照没用上。另外,如果你的摄像头模糊不清,建议你提前拍一张证件的照片,保存在电脑上,到时候直接打开图片给考官看(有共享屏幕)。

然后考官需要查看你的周围环境,拿着摄像头或扛着笔记本对着房间扫一圈就行。我建议找一个清净一点的地方。

通过验证之后,你的邮箱中会收到考试的 VPN 连接包,像平常做课程实验室一样,通过 openvpn 连接上去就行了。

监考时

考试期间如果你需要休息,可以直接在聊天窗口和考官说明(一般不需要等考官回复),离开时和回来时各发一条信息即可。如果你离开的时间不长,建议你不要退出监考(浏览器中的监考网站),因为一旦退出监考,你的考试 VPN 也会被禁用,直到你重新加入监考。(休息时你可以在后台运行你的脚本)

结束考试

要结束你的考试,需要在聊天窗口通知考官,待考官处理完信息并确认之后,由你自己点击浏览器中的 “结束考试” 按钮。

请注意,一旦考试结束,你将无法再次参加考试。

2.6 考试报告

相关资源:

  • 提交说明(https://help.offsec.com/hc/en-us/articles/360046869951-WEB-300-Advanced-Web-Attacks-and-Exploitation-OSWE-Exam-Guide#section-3-submission-instructions)

你必须在考试结束后的 24 内提交一份专业的渗透测试报告,这个报告是.pdf格式的,经过一层压缩打包成.7z压缩包。具体说明可以在相关资源中自行阅读。

描述你攻击每台机器的过程,如何在代码中发现漏洞、所使用的命令、利用步骤、所编写的 PoC 代码等。你的文档应该足够全面,以便技术一般的读者可以逐步复制你的攻击。

然后是官方原话:文件要求是非常严格的,未能提供足够的内容将导致减分或零分。请注意,一旦您的考试报告提交,您的提交是最终的。如果任何截图或其他信息丢失,您将不被允许发送它们,我们也不会要求它们。

另外,你的 PoC 脚本应该作为文本包含在 PDF 文档本身中,7z 压缩包中只能有 PDF 文件,不接受其他格式的文件。

报告有大小限制(好像是 200 还是 300 MB 来着),图片太大的话可以使用图像压缩技术,这里推荐一个好用的图片压缩网站:https://tinypng.com/,不会失真。但报告一般都不会大到哪去,我当时写了接近 200 页的报告(正常可能 120~140 就行了,感觉我写多了),写完之后才 10+ MB,特别小。

报告提交注意事项

这是我在某篇备考经验(https://blog.csdn.net/shakeyin1998/article/details/121003013)里看到的,貌似挺多人踩坑:

提交报告的注意!上传了你的报告之后,请记得 confirm。点击 confirm 之后你的报告才正式上传了,直到你的邮箱收到了 confirm 报告的邮件才说明你真的上传成功了。

这里注意真的是一个坑,很多朋友没有收到邮件就代表没有提交成功报告,导致最后考试的失败。

3. 如何备考

分享网上一些大佬的备考经验,对我提供了莫大的帮助:

  • OSWE 考试攻略:https://www.freebuf.com/articles/web/278871.html
  • 一键 Shell,我的 OSWE 之旅:https://www.anquanke.com/post/id/217301
  • OSWE 尾篇 考试的方法论:https://blog.csdn.net/shakeyin1998/article/details/121003013
  • AWAE/OSWE 學習經過與考試心得紀錄:https://hackmd.io/@koala7788/oswe_review

下面则是我的备考经验了。

如果你刚刚学完掌控的正式课,或从别的地方掌握了 Web 安全的基础知识,则你可以遵循以下学习路径(因人而异),逐步获得属于你的 OSWE 认证。

3.1 掌握Web安全基础

就是正式课的内容,如果你还不会任何渗透测试知识的话,掌控安全的正式课绝对是你最好的归宿。

挖掘公益SRC

支线任务,选做。

学完正式课之后,可以试着挖掘公益 SRC,难度并不高。将正式课中的所学知识应用到实际,有助于你掌握正式课的内容。

我当时也是挖了一段时间的公益 SRC,刷洞刷了个不错的成绩(我狗屎运,没遇到万分大佬刷榜)。

挖掘EDU SRC

支线任务,选做。

正好咱们掌控有 EDU SRC 的活动,可以参与参与,难度比公益 SRC 高一丢丢,貌似有几个大佬都刷到排行榜前几名了,我只能抬着头仰望。

我自己是没有挖 EDU SRC 的,因为总是没时间(哭)。

3.2 初步学习PHP代码审计

对于初学者来说,我推荐尹毅编著的《代码审计:企业级Web代码安全架构》这本书。

在读完这本书之后,你应该会对代码审计有一个初步的了解。

在这个时期,你可以借助各种源代码扫描器(例如 Seay 或 Fortify)来辅助你学习。但请注意,OSWE 考试不允许使用这类工具,你在学习过程中也千万不要对这类工具产生依赖,这对于发展你的代码审计技能没有帮助。

我的建议是,刚开始学时可以用源代码扫描器,初步掌握后就抛弃源代码扫描器。

审计小型系统

支线任务,选做。

在初步掌握之后,你可以找一些小型的 PHP 系统来练习代码审计技能,我觉得正式课里面的那几个 CMS 就不错。

实在审不下去也不用担心,因为这个支线任务我也没做到底(我是 fw)。

3.3 学习Python脚本开发

我推荐 Ms08067 实验室的《Python安全攻防:渗透测试实战指南》,我的 Python 开发能力就是在这得到了提升。

复现vulhub漏洞

支线任务,必做!!!

vulhub 大家应该都知道,里面有上百个漏洞环境,可以作为靶场使用。

要复现多少?越多越好!你每复现一个漏洞,就使用 Python 开发出这个漏洞的 PoC 脚本出来,这将会是你在 OSWE 中的 PoC 开发经验。

你只需要复现漏洞,然后编写 PoC 脚本,至于漏洞原理暂时不用探究,这不是你这个阶段该学的东西。

我个人是把所有能复现的漏洞都给复现了一遍,还开发了一个自己的 Web 漏洞扫描框架(https://github.com/clincat/vulcat)。

复现vulfocus漏洞

扩展资源。

如果你已经复现完了 vulhub 上的所有漏洞,还想要更多,则可以尝试一下华顺信安的 vulfocus。

vulfocus 是在线的漏洞环境,注册之后就可以使用。而且该靶场开放源代码,你也可以自行下载源代码,在本地搭建自己的漏洞靶场(存储空间不够的话就算了)。

3.4 学习高级Web渗透测试教程

PortSwigger(BurpSuite 那家公司)提供了一整套的 Web 渗透测试学习路径,其中不乏很多高级漏洞,国内很多人都拿来写过文章。这是一个很好的备考资源,特别是因为该教程完全免费。

教程有很多内容,我把备考 OSWE 需要学习的章节都挑出来了:

  • 服务端主题(SQL 注入、认证、目录遍历、命令注入、逻辑缺陷、信息泄露、访问控制、文件上传、SSRF、XXE、API 测试)
  • 客户端主题(XSS、CSRF、CORS、基于 DOM 的漏洞、WebSockets)
  • 高级主题(反序列化、服务端模板注入、HTTP 主机头攻击、原型链污染、综合技能)

但是有个问题,PortSwigger 的教程也是全英文的,又要边翻译边阅读,有没有翻译好的?有!

我从 2023 年到 2024 年,花费了一整年的时间,翻译了全套的 PortSwigger 中文版教程(https://carsaid.github.io/burpsuite-learn/basic/),几乎是 1 比 1 还原所有内容,让你看的舒心,读的顺心。

而且,我是一行一行翻译的,翻译之后我自己还阅读过一遍,基本上没有语病(有的话骂我,我改)。而且我还总结了每个漏洞章节的学习笔记,不管是拿来学习、面试都行。

由我翻译的全套教程

翻译了一年,后续还会翻译更多内容,捧个场呗(求求你咯)。

  • 前言:https://carsaid.github.io/burpsuite-learn/basic/
  • 漏洞学习笔记:https://carsaid.github.io/burpsuite-learn/wsa/notes/
  • 扩展阅读:https://carsaid.github.io/burpsuite-learn/burp/application-security-testing/oast/

掌握python中的websocket库

支线任务,必做!!!

正常来说,漏洞都应该是基于 HTTP 协议的,使用的 Python 库是requests

但是,现在有一些漏洞是基于 WebSocket 协议的(主要 OSWE 也会考),所以掌握 Python 库websocket是非常重要的!不是很难,只要你学过 PortSwigger 的 WebSocket 章节就一定会。

3.5 学习Java代码审计

我推荐奇安信的《网络安全java代码审计实战》,该书会教你如何搭建一个 Java 代码审计的环境,并使用 IDE 调试源代码等。

到了这个阶段,你应该抛弃所有的源代码扫描器,改为纯眼睛、纯手工审计。

3.6 学习其他语言的基本语法

我推荐菜鸟教程,学习 NodeJS、.Net(C#)以及 Golang 的基础语法,尤其要关注 NodeJS。

我在来掌控安全之前就是学开发的,所以…专业对口。如果你也是学开发的,那么上手起来应该很快。

3.7 阅读公开的文章

我学的是这里记录的备考文章(https://z-r0crypt.github.io/blog/2020/01/22/oswe/awae-preparation/),基本上是英文的,需要你自己翻译和阅读。

我发现这些备考文章里面,有国内某安全大厂的英文版文章,真是 nb,火到国外去了!

网上还有更多的备考文章列表,可以自己找。

3.8 购买并完成HTB和PentesterLab上的相关练习

HackTheBox

HackTheBox 绝对很多人都知道,你可以照着这个视频(https://www.youtube.com/watch?v=NMGsnPSm8iw&list=PLidcsTyj9JXKTnpphkJ310PVVGF-GuZA0)来完成所有有关于 OSWE 的靶机。注意,这些靶机的权限需要购买,买一个月的 VIP 就足够你完成所有靶机了(大概三四十块)。

我的建议是先看视频,然后自己做一遍。每台靶机都分为 Web 渗透和内网渗透两个阶段,由于 OSWE 不考内网渗透,所以你可以只做 Web 的部分。

PentesterLab

和 PortSwigger 以及 HackTheBox 有点类似,但是 PentesterLab 上面有专门的代码审计专题(综合代码审计 + Java 代审专项)。会给你一段 / 一套代码,让你找出所存在漏洞的类型以及指出代码行数。

同样需要购买,一个月的 VIP 就足够了。学完上面的 “综合审计专题” 以及 “Java 审计专题”,你的代码审计能力可以得到一个质的提升。

!!!注意!!!

PentesterLab 上的付费章节和资源不可以公开外传,你可以自己做笔记,自己看,但是不可以发在网上。这一点和 HackTheBox 不同。

!!!注意!!!

3.9 学习AWAE课程

到了这一步,你应该有了足够的能力参加 AWAE 课程,想的话就报名吧!

在 AWAE 课程中,你可以学到更多有关于代码审计的知识,干货满满。

  • 你可以先看一遍教材,有时间的话可以再看一遍视频,记得做笔记。
  • 然后自己独立完成对应的实验室,完成所有的练习,并开发相应的 PoC 脚本。
  • 学完所有课程之后,再从头开始做实验室,完成所有额外的努力。

当然,你也可以在完成练习的同时,一并将额外的努力也给完成,这样后续就只需要复习了。我个人并没有完成所有额外的努力,有的题超纲了,我脑子不够用。

3.10 预约你的考试

我约的是早上 10 点,蹲了好一阵子才约上这个时间。

  • 第一天早上,我简单的看了一下题目和代码,发现了一点眉目。
  • 第一天下午结束时,我已经将第一台机器 GetShell。
  • 然后第二台机器我不太熟悉,直到第二天中午我才发现了身份认证绕过漏洞。
  • 由于分数已经够了,所以第二天下午和晚上我都在开发 PoC 脚本,并收集写报告所需要的截图。

考试结束之后,我身心俱疲,睡到了第三天下午才醒,然后一直写报告写到凌晨。报告写了差不多 200 页,我觉得我写多了,正常可能 120~140 就足够了。

提交报告之后,大概等了 1~2 天就出结果了,这个速度还是很快的。

考试期间注意休息,挑一张舒服点的椅子,祝你考试顺利。

4. 疑问解答

相关资源:

  • 官方疑问解答:https://help.offsec.com/hc/en-us/sections/360008126631

4.1 关于网络

在课程中做实验室,以及考试时,都需要通过 openvpn 连接到 VPN 机器。由于国内网络的限制,网络延迟将会特别的高,有没有什么解决方案?

网络延迟是 OSWE 中的最大难题,可直接影响到你的审计时间和考试成绩。

组一台云服务器

在这篇文章(https://blog.csdn.net/heisejiuhuche/article/details/128204481)中有提到,AWS 在国内刚好有提供服务,所以我考试前也租了一台云服务器,但是经过尝试发现太卡了,遂放弃。而且挺贵的,组一天十多块钱,不过考试那几天用就刚刚好。

如果你的网络质量比较高,可以一试。另外,创建云服务器后记得在 “安全组” 里面放行 SSH 和 RDP 的流量。用完之后记得 “终止” 服务,免得一直扣费(注意是 “终止” 不是 “停止”)。

OSWE—我的代码审计之路

另外,在 “控制台主页 —> 账单和成本管理 —> 账单和付款 —> 账单” 页面的下方可以看到具体的扣费项。

为openvpn设置代理

openvpn 是可以配置 SOCKS 代理的,只需要在 VPN 文件中添加以下配置:

  1. socks-proxy 127.0.0.18080

另外在考试前我也发邮件问了官方,官方说不建议使用第三方代理,遇到网络问题的话没办法提供支持。但没有明确禁止使用第三方代理,只是说如果你坚持使用的话,考试时遇到网络连不上的问题要自己承担。

设置代理并连接 VPN 之后,你可以ping一下网关或者靶机,如果延迟在200 ms以下就算正常水平,200~300 ms可能会有点小卡。

(什么?你问我怎么搭建代理?我不懂啊,我不会啊,我不道啊。别问我啊,有事问搜索引擎)

4.2 应该专注于哪些语言?

OSWE 目前考查 6 种语言,我们应该专注于哪些语言?下面是我的个人想法:

  • PHP 和 Java 是老牌语言,是必须要关注的。
  • NodeJS 和 Python 作为新生代的 Web 开发语言,也备受人们的青睐。
  • .Net(C#)难度大,在 AWAE 课程中的占比也非常小,但仍然不可松懈,万一考试刚好抽到了呢?
  • Golang 作为新增语言,占比也比较小,不好说。

总的来说,我建议你将更多的精力放在 PHP、Java、NodeJS、Python 的代码审计上,至于 .Net 和 Golang 则给予少许的关注。如果你追求稳,则 6 门都掌握也是可以的。

如果要为这些语言设计难度排名的话,我觉得是这样:Python < NodeJS = Golang < PHP = Java < .Net

Python 应该没有人说不会,最简单的语言之一,审计起来也可以说比其他语言简单。我最害怕的就是 .Net,有时候连语义都看不懂,耗时。

而 PHP 并没有大家想的那么简单,不要被迷惑了。

4.3 考OSWE之前是否需要先考OSCP?

不需要。因为 OSCP 和 OSWE 的考查内容不一样,两者的课程和考试内容并没有任何联系。而且我本人也没有考 OSCP,我不会任何的内网渗透知识。(内网渗透,我都不学!)

如果你想考 OSEP,那么 OSCP 将会是很好的经验。

但如果你考的是 OSWE,那么你完全可以跳过 OSCP。

4.4 有没有必要报培训班?

不需要。因为你报名 OSWE 的时候本身就会提供一套课程(AWAE),学完课程内容就足够了,不需要额外的培训。

(除非你觉得自己很菜)

4.5 有没纸质版证书?

原来是有的,但是自 2022 年 4 月开始,除了 OSCE3 认证以外,其他所有认证都停止了纸质版证书的印刷。现在只提供电子版的证书,可以在线验证。

你可以在这篇官方说明中获取到更多相关信息:https://help.offsec.com/hc/en-us/articles/4826237411732-Digital-certification-FAQ。

我哭死,早出生几年多好,我的纸质版啊!但是你可以自己打印,想打多少张就打多少张,然后过个塑,有条件的可以找个相框裱起来 [狗头]。

4.6 要审计的代码量?

对于 OSWE,它不会考查第三方代码库、框架中的漏洞,它专注于应用程序本身的漏洞。代码量大概几千行,不会特别变态。

4.7 考试报告模板

对于考试的报告,官方有提供报告模板,是 Word 文档,写完以后自己导出 PDF 文件。

官方模板被很多人诟病,于是乎我找到了另一个由一些大佬开发出来的基于 Markdown 的报告模板:https://github.com/noraj/OSCP-Exam-Report-Template-Markdown,你可以编写.md文件,然后运行脚本以生成 PDF 格式的报告。好用!推荐!

4.8 CVE和CNVD有没必要审几个出来?

你可以先审 CVE 和 CNVD,然后再报考 OSWE,这将会是你的经验。

你也可以先学 OSWE,然后再审 CVE 和 CNVD,将你学习到的内容转换为成果。

我是后者,我还没有原创的 CVE 和 CNVD,因为我觉得,既然要挖,就要挖大的!

如果你还没有 CVE 和 CNVD,但是又想报考 OSWE,我建议你不要在 CVE 和 CNVD 上浪费时间,多学学有关于 OSWE 的知识。

4.9 PHP代码审计是不是比较简单?抽到PHP的题目必过?

估计只有小白才会这么想,说 PHP 简单的人估计还停留在初级阶段,我只能说:PHP 代码审计一点都不简单!

早期的 PHP 代码写起来、读起来比较简单,但现在的 PHP 编码难度和 Java 不相上下,在某些大型框架中,PHP 的复杂程度甚至要超过 Java。

如果有人和你说 “PHP 代码审计很简单”,不要犹豫,过去给他两个大嘴巴子!

4.X 更多内容

暂时想到这么多,还有问题的话在评论区提问吧,不一定会一一回复。

5. 总结

我不会任何的内网渗透知识,但我在代码领域专精。

网上很多人说:学完 Web 安全基础就可以开始内网渗透啦!但我觉得,内网渗透并不是你唯一的出路。

  • 我觉得你可以继续学习 Web 安全,学习高级的 Web 渗透测试技术,就像 PortSwigger 教程中所提到的那样,做一个高级 Web 安全研究员。
  • 你还可以继续学习 Web 白盒代码审计,做一个代码审计工程师。
  • 又或者继续学习 Python 或其它语言,做一个安全开发工程师,开发一堆 nb 的工具和设备。

这就好比如过节放长假,大家都说去某某景点好玩,但是那里人山人海、摩肩接踵,别人吃肉,你连汤都喝不着。你是继续前往该景点,还是重新规划行程?适合你的方向,才是最好的。

朝着上面提到的那 3 个方向发展,一定会遇到不少阻碍和质疑。

面试就是一个很好的例子,我去面试的时候,面试官问我很多内网渗透的问题,我都答不上来(内网渗透我只会用工具,工具免杀,工具提权,原理不懂),只能被骂脚本小子。我想展示我在代码领域的才华,但人家根本不鸟你,觉得你连内网都不会,在别的领域能有啥成就。

但现在,我终于能把我学到的所有东西写进简历里了!

希望你也能坚持下去,你的技术总有一天会被有缘人赏识。Try Harder!

6. 评论区抽奖

由我个人发起,截至2024-06-17 00:00:00,在掌控安全社区的本篇文章(https://bbs.zkaq.cn/t/31645.html)下方发布任意评论,从评论区随机抽取5人送出233金币,以文章打赏的形式支付。

另外,记得收藏下我的博客:https://carsaid.github.io/,未来上面将会有更多的干货,感谢支持!

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

 

原文始发于微信公众号(掌控安全EDU):OSWE—我的代码审计之路

 


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月17日14:21:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OSWE—我的代码审计之路https://cn-sec.com/archives/2855812.html

发表评论

匿名网友 填写信息