启明后续以及部分面试对比总结
本文用于介绍在启明一面中与默安面试过程中提到的各类技术。
顺便聊聊面试的技巧以及针对性问题。
首先,在启明我投递的岗位的攻防研究web方向,工作内容以漏洞原理分析,漏洞防御规则落地为主。在默安的岗位为安全研究java方向,工作内容为java语言的漏洞分析,安全防御,漏洞检测,代码审计,本次提到了iast与sast技术,这个其实文章已经写的差不多了,但是由于没有写一个demo所以有点短,也不直观,过两天合几个demo进去再发。
安全研究与攻防最大的区别在于两者的需求不同,安全研究更希望工作人员在研究方向有一定的深度,相对重视思维能力与科研能力。攻防研究更要求攻防能力,同时希望期能力广度较高,同时要求一定的深度。
以上为个人理解。
所以在与默安的面试官沟通的过程中,我们着重交谈了关于如何定向进行java漏洞检测,怎样能够检测指定漏洞,以及我个人对于脚本与工具的开放方面。
而启明部分,面试官重点放在了我的各类能力的深度以及应用上。
这里就体现出了职业不同,与我个人准备的关系。
启明方面更加注重攻防能力(注:这是我的投递岗位问题),会提出webshell的原理,哥斯拉与菜刀等软件的源码分析,加密流量分析,java的反序列化cc链等等。
问题来了,既然我敢写到简历上,这些东西会吗?其实是会的,但是近期没有去做,导致根本不在记忆中,看过我前几篇的朋友可能知道,前几篇做过简单的goby和蚁剑的反制,但是当时的分析重点没有放在功能上,而是在于软件结构以及问题点。
而cc链做了有半年多了,没回答上来很可惜。
还提到了nodejs中存在代码执行的函数(去年看goby时候了解的nodejs开发,这里也没回答上来)。
可以看到,如果希望能够进入这类岗位,需要将自己的知识面重新梳理一下,用以回答各类问题,以及自己简历上提到的技能。
而默安与深信服的面试内容集中在我较为擅长的开发部分,详细聊了聊各类工具脚本以及分析用脚本的开发等方面,重点在开发思路等,我也直接表示了最近做的工作内容,以及自己不擅长的领域,所以交谈也算比较融洽。
深信服和默安的面试较相近,会在深信服面试后统一总结(除了上文提到的那篇文章)。
本文的以下部分来复习一下启明面试中提到的我淡忘的问题们。
Webshell的原理,检测以及免杀:
下面以php为例
Php的一句话木马,我们最常见的是
<?php @eval($_POST['hacker']); ?>
页面获取post的hacker参数,进行eval()函数调用,从而达到一句话木马的效果。
Get同理。
然后小马传大马等等。
检测就是检测eval函数字段,禁用eval函数即可。
一句话木马基本同理,提交参数作为攻击语句,参数调用。
那么检测分为两种类型,一是攻击函数的检测,二是攻击语句的检测。
攻击函数的绕过即用非黑名单函数替换调用,或者分离调用。
攻击语句同样是语句检测危险语句即可。
然后就是webshell加密(这里写过一篇冰蝎的webshell加密原理分析,等我翻出来发一下。)
Webshell主要就是这两部分了。
下一个,nodejs的危险函数总结:
eval()
process.arch
process.argv
process.argv0
process.channel
process.cwd()
process.geteuid()
process.getegid()
process.getgroups()
process.pid
process.platform
process.version
等,还有很多,而且nodejs是运行在服务端的js,其实很多js的东西也同样有效,比如alert()导致的xss等等。
具体的漏洞分析就不放在这里了。
https://www.runoob.com/nodejs/nodejs-tutorial.html
https://www.cnblogs.com/ichunqiu/p/7340515.html
https://cloud.tencent.com/developer/article/1094293
这三个看完基本就了解了。
java的cc链我也有过单独的文章,我去翻翻发出来。
哥斯拉等的分析近期不会做,在蚁剑的shell加密中有对比提到过。

浙公网安备 33010602011771号