上周无意在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)?有什么想要问面试官的?