吉祥知识星球http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247485367&idx=1&sn=837891059c360ad60db7e9ac980a3321&chksm=c0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd
《网安面试指南》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect
《Java代码审计》
《Web安全》
《应急响应》
《护网资料库》
面试岗位:渗透测试
先简单说一下这个岗位,现在的渗透分的很细了,像深信服这种厂,一般分为一般渗透,也就是会在各个省会城市干渗透的活(对网站的渗透),还有一种基本也是渗透叫红队,这个深信服应该是在他们深蓝实验室,这种红队的要求就比较高了,一般要会打点、代码审计、内网渗透等;但是一般应届生面试的渗透测试岗,要求就没那么高了,更多的会问你一些漏洞的原理、工具的使用、做过哪些案例或者实验等,所以只要你漏洞原理这些基础知识比较扎实、再打过一些靶场一般问题不大。
一二面技术问题
1、问:做个自我介绍吧。
答:这个就不用写什么了,就是说一些自己和网络安全搭边的一些事啦,相信咋喜欢网络安全的小伙伴都会有一堆说不完的话,我就说了3分钟左右,大佬们可以自己把握时间。
2、反序列化漏洞的原理是什么以及怎么利用的
解:很巧的是前一天我刚好看了一下反序列化。还顺便复习了一下serialize和unserialize的发音。我就把学院里教的反序列化给他老人家讲了一遍,从对象序列化到字符串格式反序列化,再到靶场的做法。。。。。。当然靶场被我说成了某站点。。然后穿插着unserialize的英文。面试官也是有点一愣一愣的。最后说他听懂了。然后他问到weblogic的反序列化有研究过吗,我只能如实说并没有的,但已经排上了日程,下周就会去做这部分的研究,但是我说我修复weblogic反序列化贼厉害啊,每个版本的反序列化我从运维的角度上都会修复,然后这个问题就没继续深入了
3、如何看待web前端安全,简述前端安全存在的风险有哪些,并用具体例子说明
解:我理解的web前端指的是客户端,也可以说是浏览器端。前端安全是一个很大的分支,如cookie安全,flash安全,dom渲染(dom型xss),字符集,跨站(csrf),钓鱼,信任等。Cookie安全方面,如果过分相信cookie且没有进行其他处理,那么可能造成csrf。字符集可能造成宽字节问题,如逃逸特殊符号
信任方面,实际上安全的攻防都是以信任为基础,如同源策略,实际利用中有:1. A站防护很高,但同服务器同文件系统下的B站因安全问题被入侵,那么如果文件权限没有配置好,则A站也会被成功拿下,因A与B过分信任,没有做好分离。2. A网站嵌入和B网站的javascript脚本,方式是以<script>标签引用,实际也等于建立了信任关系,那么如果此脚本被黑客动了手脚,那么A站也会被危及。另外,我认为社会工程学也应说一下,通过google hacking,SNS垂直搜索(人人网,Facebook等)和其他各种信息收集方式,这使得攻防的过程变成了一个斗智斗勇的过程,在成功的入侵中,社工可能扮演着非常重要的角色。
总结起来主要分为三大类:XSS/CSRF/界面操作劫持Xss:现在xss漏洞被人认为是没有什么危害的漏洞,包括大部分src已经不收反射型xss漏洞了(利用困难,chrome等浏览器也会拦截掉),但谈论前端安全,xss就是个很大的问题,如果是一个半年一年不更新的站点,盗取管理员cookie当然概率很低。所以我把xss漏洞单独拿出来说,是因为他必须结合相应的场景。在对html,js脚本使用不规范(html有容错机制,即忘记写一个标签或者一个符号,也能正常运行),或者没有做好过滤的情况下,可能造成xss漏洞的产生,如留言板页面,提交js代码,没有过滤或者转义特殊字符,导致提交成功,数据被存入了数据库csrf :跨站点的请求,且请求是伪造的。A用户在登录A站的情况下登录了危险网站B,B站中有构造的请求A站的恶意代码,那么A用户在不知情的情况下就操作了网站A。在防御方面:
1.验证referer。2.使用验证码。3.加入token。4.限制session生命周期。但弊端也很明显。有些请求可能就不带referer,那么没有办法验证。验证码会降低用户体验。Token随机性如果不够好可能会被猜解,或者token本身因某种方式泄露,此外,在大型的服务中需要一台token生成及校验的专用服务器,需要更改所有表单添加的字段,时间和复杂度也是个重要的问题。当然限制session生命周期也是缓解的方式,不能有效解决csrf。某位大佬提出了下面这样的方法:原理与token差不多:当表单提交时,用JavaScript在本域添加一个临时的Cookie字段,并将过期时间设为1秒之后在提交,服务端校验有这个字段即放行,没有则认为是CSRF攻击。
界面操作劫持:点击劫持、拖放劫持、触屏劫持。点击大体是在用户可见可操作的界面上,覆盖一个不可见的框,即某控件之上覆盖一个iframe,且该iframe透明度为0,例子就比较多了...大多不可描述的网站中,点击某个按钮或者选项会调至另一个网站..这是个非常可怕的操作触屏劫持也很可怕,试想一下,用户想查询某个超市离自己多远,点击查询后,实际上进行了一次网银交易操作...移动设备上的web网页设计大体理论与PC上相通,又说到了某些不可描述的网站,用户在浏览的过程中,点击后并没有跳转至想去的页面,而是弹出或者直接跳转至另一个站点。
4、列举一些渗透测试的常用工具,并简述其应用场景,和使用案例
解:
Burpsuite:针对请求进行抓包改包等操作,可以对前端参数进行进一步测试,如测试逻辑漏洞,爆破弱口令,寻找页面传参点等
Sqlmap:可以检测或者注入后台数据库为关系型数据库的站点,还可以访问文件系统,使用-file-read “xxx.txt”来读取目标目录下xxx.txt文件,更可以使用-os-cmd执行操作系统命令,-os-shell使用交互的操作系统shell,功能十分强大,其丰富的tamper也为绕过一些waf提供了很大的帮助。当然大部分情况下还是要手动判断waf规则的。
御剑:很优秀的目标扫描工具,在一次真实的场景中,我通过御剑扫描得到了对方的数据库文件,看到了数据库ip,port及账号口令,直接连接数据库后,所有我想要的已经呈现在我面前了。
Mimikatz:抓取当前系统中所有用户的明文密码。在提权的时候可能会使用Owasp Zap/AWVS:漏洞扫描工具,我个人是不怎么喜欢用漏扫的,在不摸清楚对方情况的条件上直接使用漏扫,很可能导致ip被ban,而且参加过一些众测的项目,很多白帽子使用漏扫对目标展开疯狂的扫描,导致目标连正常访问都有问题,有点反感这些操作。但漏扫工具在一定程度上也会让我们大概了解目标的信息,如路径,可能存在的漏洞等,以免我们遗漏了某些点
Namp/masscan:目标开放服务扫描,弱点端口扫描,操作系统辨识,属于信息收集。如-p指定端口,-sV识别服务版本,-O识别操作系统,-sS(不建立三次握手的隐式扫描),sT(TCP扫描,信息相对准确),对于禁ping的站点可以用-Pn等,另外nmap强大的脚本也可以提供多种方式,如dos(可能造成拒绝服务),exploit(检测安全漏洞)。相比较来说,masscan在扫描上速度更快,效果更好一些(个人认为),所以可以两者配合使用,masscan快速扫出端口,nmap通过这些端口再去识别服务。
5、sql注入如何getshell解:比如mysql的select into dumpfile,比如sqlserver的xp_cmdshell之类的。这个问题面试官没有深入问,但是可以作为我面试结束后的一个深入了解方向
三面问题/hr面
接着就是三面了,放轻松点和hr聊一下人生啊,规划啊什么的。。。
面试的感受
体验总体来说,大部分面试官技术都不错,在面试过程中让我学到了很多。也有部分面试官让我真的很心烦,我说啥他也听不懂,问的问题也莫名其妙。
给大家的建议
关于建议主要是以下几条
1、不要慌,自信;之所以写在第一条是因为这个是最重要的,我第一次面试和最后一次面试相差很多。第一次就像一个铁憨憨。
2、面试是双向的,公司在选择你的同时,你也在选择公司,少点套路,多点真诚。
3、自己不会的也可以写到简历里,前提是,你能在面试前把你写的东西都搞懂,至少能说得出来。
4、信息收集,去了解你要面试的公司。他们主要做什么,对安全的需求是啥样的,你能想到的都了解一下。
5、学院的靶场和课程必须搞懂,不要偷工减料。
6、面试官问你,你还有什么问题要问我的时候,不要耍你的小聪明。
推荐阅读:
学了这篇面试经,轻松收割网络安全的offer
护网主防资料库、护网设备讲解、护网初中高级别面试
Java代码审计零基础入门到整套代码审计
Web安全:靶场、渗透工具、信息收集、输入输出漏洞、业务逻辑漏洞
【护网必备技能】应急响应知识库