0%

山石网科web安全工程师面试复盘

上周无意在BOSS直聘上发了简历,结果山石网科来电话面试。当时晚上八点,我正在回家的地铁上,很冷,又因为第一次面试有点紧张,自己感觉很多问题答得不好,这里尽量回忆面试内容,希望下次能够做好准备。

Q1:说一下渗透一个网站的具体流程

首先信息收集,判断网站是否有CDN,接着了解整个网站的工作流程,接着扫描端口,看看有什么弱服务,比如Redis弱口令,接着我会找逻辑漏洞,比如说密码重置。(最重要的OWASP TOP 10居然忘了讲)

Q2:说一下如何绕过CDN

可以暴力扫描全网;寻找上传服务,抓包;寻找邮件服务,看IP。(应该还有很多的,比如说看DNS历史解析记录)

Q3:说一下Redis漏洞如何利用

当时我只说了一个写webshell的,但是如果redis权限够大的话还可以写contrab或是sshkey。

Q4:说一下对于不同web容器,如何利用文件上传漏洞

nginx用00或换行截断,IIS用;隔开(忘记讲apache用多重文件名绕过)

Q5:简要介绍一下盲注

盲注分为基于时间的盲注和基于bool的盲注,一个是通过等待时间判断一个字符的ascii码,一个是通过返回现象判断字符的ascii码。

Q6:你在SQL注入时经常用到哪些函数?

这题目搞得我眼前一黑,我经常用的难道不是UNION SELECT这种操作符么Orz,然后我就讲了length,if,substring,ascii,其他的一时半会实在想不起来。现在想想其实还有很多,比如报错的函数EXTRACTVALUE、连接函数concat等。

Q7:在注入时遇到WAF怎么办?

讲了一种利用fuzz绕过安全狗的思路,不知道考官听懂没有T_T

Q8:了解PHP的文件包含吗?

不了解。

Q9:了解反序列化吗?

不了解。(反序列化真得好好看看,不仅考官问得多,各种语言好像都有着类问题)

Q10:说一下你印象最深的渗透经历

这里我感觉答得还可以,讲了一个通过Docker Remote API getshell的经历。

Q11:既然你谈到了Docker,那么Docker file的RUN,ENTRYPOINT和CMD有什么区别?

docker file的RUN命令只在构建镜像时运行,ENTRYPOINT和CMD命令均在利用镜像实例化容器时运行,在实例化时输入新命令会覆盖掉CMD命令,而若使用ENTRYPOINT命令时,新的命令会作为参数接在ENTRYPOINT命令后面。

Q12:擅长什么语言

擅长Python,Java和PHP能看得懂。

Q13:用Python写过什么项目吗

用Python写过一个APK安全扫描框架,blablabla…

Q14:打过CTF吗?说一说比赛经验?

也就随便说说了。

其他问题

包括什么时候可以实习?以后想做哪一块,web or bin?(我也不知道既然凉了为啥要问这种问题Orz)?有什么想要问面试官的?