OSWE
Td

前言

OSWE(Advanced Web Attacks and Exploitation),也称WEB-300,是组成OSCE3三部分中的其中一部分,主要内容为白盒审计,涉及语言相对广泛,目前主流的,例如:C#、Java、Nodejs等都有涉及。

注意事项

OSWE是一个考验白盒审计的课程,在考试期间,不会被允许使用自动化工具,也不会允许使用审计工具,无论是开源、商用、或是自己写的,都不会被允许。

考试期间,也不允许将考试的源代码下载到本地。

最终提交的报告,需要带有漏洞发现,漏洞利用,及python自动化脚本。

python自动化脚本的要求是在运行后,不需要用户进行交互,即可获取反弹shell,除去手动开启nc监听,这个只需要在报告里写出nc监听的具体命令。

备考

虽然前面有OSCP和OSEP的一些学习经验,但我从未真正意义上的进行过白盒审计代码。

考试最终需要提交一个自动化脚本,这个不强制要求为python,我选择python只是因为它相对于其他语言来讲,上手难度会低一点。

考试代码量不会特别多,基本上从头到尾全部看一遍是完全可以的。

课程内的一些漏洞,都是较为经典漏洞,官方会从发现,到利用开始,详细的讲解整个漏洞的利用过程,以及为何会产生漏洞的原因,这点像对于我这种没有经历过白盒审计的人来讲,是非常友好的。

教材内,还有几章是Offsec官方他们自己提交的一些CVE漏洞,看完只觉得难度太高,如果换我来,我是绝无可能发现这些漏洞的,但在学习的过程中,还是觉得酣畅淋漓,这些思路是从未设想过的,仿佛打开了新世界的大门。

OSWE中的教材,有几章是在末尾有对应的Lab练习题,而Challenge只有三个:Answers、DocEdit、Speark,前两个是白盒,第三个为黑盒,虽然是黑盒,但还是会给一点代码,可以算是灰盒,这三个Challenge都没有flag,能拿到shell就算打完,而这三个Challenge,每个都有好几种做法,可以多尝试几种,这样也可以对源码有更进一步的了解。

image

在4月10号开始看教材学习,本打算预约的是6月7号,端午节前一天考试,但在4月底的时候,发现教材和习题已经全部做完了,lab也打过了,如果要在端午节考试的话,这期间一个月是相当于没有事情做的,索性将考试提前,预约了5月2号上午八点的考试。

image

考试

流程还是一样的,开摄像头,验证身份,等待监考发vpn连接文件。

拿到vpn后,链接上去,他会给5台机器,1台kali调试机器,另外两台目标机器,以及与之相对应的两台调试机器,这两台调试机器是和目标机器一致的,在调试机器上发现的漏洞,在目标机器都会有。

先访问web,黑盒看了一遍,没有什么可利用的点,随即就远程链接到调试机,开始白盒看代码。

从路由开始一个一个看,很快啊,我就掉到一个兔子洞了,我在那里折腾了四、五个小时,后面我才感觉,这个应该不会是可利用的地方,然后继续看源码。

考试是上午八点开始,到第二天的上午六、七点,才发现漏洞,绕过了身份验证,此时我预感,这次八成要补考了。

绕过身份验证后,也是立马继续查找可能可以rce的利用点,这次非常快,只用了半个小时不到就找到了漏洞,并验证成功,拿下了第一台机器。

后续也就是将利用过程写成python自动化脚本,由于还有一台机器,我只简单的写了一下,随即就去奋战第二台机器。

第二台这里很是顺利,也有一部分的运气因素,我在看路由文件的时候,一眼就相中了一个地方,然后就是跟进,一步一步看执行流程,没想到一次就中。

在不断的验证后,在晚上的十点左右,验证成功,立马就拿去目标机器测试,同样成功,此时还差rce,但分数已经足够通过考试,当时状态很差,加上本身我的代码审计水平也不好,我就没打算继续往下看。

在将两台机器的利用脚本写完,将对应的机器重置后,测试脚本正常运行,我便结束了考试。

第二天睡醒后才提交的报告,这次成绩出的很快,在报告提交后的第二天,也就是5号下午,我就收到了通过邮件。

image

image

结语

考试的漏洞利用不会很难,但是发现漏洞,以及部分情况下需要将漏洞组合利用会稍微费点时间,需要有耐心,不断地去尝试,去摸索。

至此,OSCE3只差最后一门OSED,这是我从未接触过的领域,希望不会将我折磨得太惨。