在通过oscp后在学校里闲着也是闲着,就又报名了一个oswe,期间事情挺多的,就把lab做了遍自己研究了一下各个语言的特性和关键点,相当于裸考了(~笑~),总得来说考试还是挺简单的,难得是一项不需要try harder的课程,最后花了十四个小时过关,这里简单复盘一下还有注意事项。

有想了解考试的可以走以下link:https://help.offensive-security.com/hc/en-us/articles/360046869951。

首先就是心态了,我感觉像这种48小时的考试对心态来说是一个很大的挑战,我最开始也是非常慌张的导致切入点一直没有合适的切入,其实这个相较于CTF来说还是简单很多了,静下心来去追路由,结合正则一起搜索一点一点去看别着急,还是很容易把漏洞之间关联起来打组合拳的。

其次就是要有自己的一套审计思路,针对不同的语言要熟知语言特性可能带来的问题,主要是以.net php java nodejs四门语言为主。抛开语言间共有的漏洞发生问题,特性对于审计不同语言间的思路是相当重要的。像js的特性就是万物皆对象,原型链继承就是发生问题可能点最多的地方,在原型链中继承可能会导致什么样的问题,开发通常是怎样处理继承,如果可以覆盖是否有已知的nday可以组合利用等等,这就需要多思考多练习了,不同于实战,他对中间件的考察倒是不多,基本上问题都能聚焦于代码上获得解决。

具体考试时需要先实现认证绕过,然后获取到shell,手工利用完只是第一步,需要编写一个一键获取到对应shell的脚本,所以发现漏洞只是第一步,到这一步也一定要定下心来,最好边测试debug机器边测试靶机,网络问题或者访问问题会导致脚本在执行预期上有一定出入(~无奈~)。

练习的话其实吃透lab就可以了,兼以做些htb hard难度的机子训练思维就足够了,相对于平时审计的代码量是相当轻松的,足以训练到专项能力。