上海-杭州等公司渗透测试工程师面试分享

urfyyyy   ·   发表于 2019-06-25 15:03:27   ·   面试经验分享

所面试的公司:安恒信息、安垚、端御信息科技、合合等

所在城市:上海、杭州

面试职位:渗透测试工程师

薪资待遇:10k-20k都有

面试过程:我在前程无忧、BOSS直聘上面发布了简历,也没有刻意去投简历,每天就会有很多公司打电话给我。有的HR是会问一些简单的技术问题,有的HR是一点技术也不会问,问点基本信息,如为什么离职,能否加班之后,就会让技术部的工程师来进行第一次电话面试。大部分情况下电话面试之后就会接到二面的邀请,在约定时间去公司面谈就好,个别公司要求带上了电脑需要实操,大部分公司就是你问我答,我问你答环节。基本上问题都不大,虽然我感觉自己问题很大

面试官的问题:

1、反序列化漏洞的原理是什么以及怎么利用的

很巧的是前一天我刚好看了一下反序列化。还顺便复习了一下serialize和unserialize的发音。我就把学院里教的反序列化给他老人家讲了一遍,从对象序列化到字符串格式反序列化,再到靶场的做法。。。。。。当然靶场被我说成了某站点。。然后穿插着unserialize的英文。面试官也是有点一愣一愣的。最后说他听懂了。然后他问到weblogic的反序列化有研究过吗,我只能如实说并没有的,但已经排上了日程,下周就会去做这部分的研究,但是我说我修复weblogic反序列化贼厉害啊,每个版本的反序列化我从运维的角度上都会修复,然后这个问题就没继续深入了


2、如何看待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上相通,又说到了某些不可描述的网站,用户在浏览的过程中,点击后并没有跳转至想去的页面,而是弹出或者直接跳转至另一个站点。


3、列举一些渗透测试的常用工具,并简述其应用场景,和使用案例

解:

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(不建立三次握手的隐式扫描),sTTCP扫描,信息相对准确),对于禁ping的站点可以用-Pn等,另外nmap强大的脚本也可以提供多种方式,如dos(可能造成拒绝服务),exploit(检测安全漏洞)。相比较来说,masscan在扫描上速度更快,效果更好一些(个人认为),所以可以两者配合使用,masscan快速扫出端口,nmap通过这些端口再去识别服务。


4、sql注入如何getshell

解:

比如mysql的select into dumpfile,比如sqlserver的xp_cmdshell之类的。这个问题面试官没有深入问,但是可以作为我面试结束后的一个深入了解方向


5、针对内网渗透,说出自己的见解

解:

内网渗透的本质就是信息收集,内网的防御措施相对于外网来说较低,将更多的精力放在管理员密码使用习惯以及弱口令的探测上,万不得已的情况下使用嗅探。另外还有端口反弹,寻找域控服务器等方式。通过域成员主机,定位出域控制器IP及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP,设法从域成员主机内存中dump出域管理员密码,进而拿下域控制器、渗透整个内网。域渗透过程如果发现域管理员的密码已经修改,可尝试利用krbtgt用户的历史hash来进行票据传递攻击,krbtgt用户的密码一般不会有人去修改之类的云云~

工具利用msf等。可以用arp -a去查看附近存活主机,本机是否有以管理员身份运行的服务,如果有,可以用mimikatz获取管理员密码。很多域内都是多台主机使用相同的密码,而且管理员安装多台机器的时候可能使用一个镜像,补丁方面也可能都没有打。可以看看内网是否有OA之类的系统,去做测试。内网某些ftp工具,某些登录的邮箱之类的,是不是设置了保存密码,是否有没打补丁的漏洞可以利用。然后linux及windows的命令要熟悉。最好要会点shell和bat,python等一些语言,因为有可能对方的内网环境根本没有可利用的工具或者功能,但linux下shell和python一般都是有的,可以利用这个自己做一个工具。反正把我自己能想到的都说出来了。


6、部分面试官听说我以前做运维,还会问一些简单的运维问题,如:

tomcat全局配置和用户配置分别是什么?

答:server.xml和tomcat-users.xml

尽可能多的举例出能显示文件内容的命令。

答:cat、more、less、head、tail、tac、vi、vim、find、sort、xxd、od、sed、awk(我记忆中和文件有关系的全都怼上去了。。。。)

BEA-000386报错出现的原因是什么?

答:BEA-000386主要是因为身份验证失败而出现的报错,有可能是在weblogic主服务没有启动成功的情况下就启动了受管服务,造成无法验证用户名和口令故报错;还有就是受管服务boot.properties文件中的username和password有错误所以导致报错;再有就是从weblogic的console中改密码,通过myrealm里修改,后来删除了servers/xxx(xxx为具体服务名),导致重新启动时报错,因为在myrealm中改密码并不是真的修改了域的密码。

其他还有一些基础问题就不一一列举了


7、如果去做腾讯、阿里之类的网站的渗透测试,你会怎么做?

答:主站没有办法的话,和其他网站一样,去找旁站测试;或者测试那些刚上线的新业务新站点。


8、不知道什么情况,其他小伙伴面试经常被问到sql注入,xss,csrf之类的问题,但很少有面试官问我这些问题。。虽然也有被问到,但其他面试贴里有很多此类问题的解答,我就不在自己的帖子里写了。

有些面试官会考思维,比如上面的列出显示文件内容的命令,比如也有问过我php怎么查看目标文件,回答是readfile('路径/文件名')、file_get_contents('路径/文件名')、system('cat 路径/文件名')。这种都是考你思维能力。类似于有些同学被问到如何绕waf。还有一些其他的问题,但我记不住了。。。同学们只要思维发散一点,不管对不对,先说说自己的思路和想法就好。


9、分析爬虫检测技术和如何对抗爬虫检测技术,说出自己的思路

解:

1、加入验证码机制,因为验证码机制本身就是图灵测试,相当于向访问者提问随机的验证码,但爬虫可能通过各种段去识别验证码。如果验证码设置的过于变态则会很大程度上降低用户体验

2、要求登录后才能进行某些操作,爬虫开发者可以注册账号,每次请求都带上cookie或token,那么需要完善账户体系,比如用户A只能访问他关注或者关注他的人。也会造成不满足用户需求的情况。

3、对访问用户量进行记录(同一个cookie,同一个ip等),如果超过了一个阈值,就直接封禁IP或者账号。但有些公司不愿意去封禁ip,或者账号,封禁ip可能会误伤,如某区域内的用户有着相同的ip出口。只能去拉黑ip过一段时间放出来或者只能限制访问,那么可以使用代理或者注册多个账号,联合起来爬取

4、有些爬虫的UA都是python/request,那么运维人员可以对带有这部分header的数据包请求进行拒绝访问。但可以设置爬虫的UA为百度爬虫。目标系统则可以检查hostname中的ip是否真的是百度的,然后对百度的ip设置一个白名单。而爬虫则可以改写为随机爬取,如随机每十秒爬取1-3次,每天隔几个小时爬一会,今天爬完休息两天再去爬

5、另外,可以使用selenium模块来完全模拟浏览器操作,那么对方即使js加密生成随机token也一样可以获取数据了

实话说,本人没有深入研究过爬虫对抗技术,无法提供过于专业的对抗爬虫的策略了。


面试结果:基本上都是通过或者待通知  

面试难度:还好,有难有易

面试感受:体验总体来说,大部分面试官技术都不错,在面试过程中让我学到了很多。也有部分面试官让我真的很心烦,我说啥他也听不懂,问的问题也莫名其妙。

给大家的建议:关于建议主要是以下几条

1.不要慌,自信;之所以写在第一条是因为这个是最重要的,我第一次面试和最后一次面试相差很多。第一次就像一个铁憨憨。

2.面试是双向的,公司在选择你的同时,你也在选择公司,少点套路,多点真诚。

3.自己不会的也可以写到简历里,前提是,你能在面试前把你写的东西都搞懂,至少能说得出来。

4.信息收集,去了解你要面试的公司。他们主要做什么,对安全的需求是啥样的,你能想到的都了解一下。

5.学院的靶场和课程必须搞懂,不要偷工减料。

6.面试官问你,你还有什么问题要问我的时候,不要耍你的小聪明。。。。。

7.掌控的课程全部问心无愧的前提下,尽可能相信自己吧


PS:以上问答是在写这个经验分享的时候做了一些小优化和整理的,实际上面试过程中的问答大体意思是这样没变的,但有些许小偏差。语言措辞上可能没有那么严谨。

打赏我,让我更有动力~

7 条回复   |  直到 2020-1-21 | 1332 次浏览

goodplay
发表于 2019-6-26

镜姐牛逼

评论列表

  • 加载数据中...

编写评论内容

gmamba
发表于 2019-6-27

666

评论列表

  • 加载数据中...

编写评论内容

treenewbee
发表于 2019-7-1

666,境姐写的全是干货啊

评论列表

  • 加载数据中...

编写评论内容

tryln
发表于 2019-8-28

感觉你说的我有一部分真的答不上来。我太难了

评论列表

  • 加载数据中...

编写评论内容

213996596
发表于 2019-9-22

有点东西啊

评论列表

  • 加载数据中...

编写评论内容

金钥匙
发表于 2019-10-10

谁是境姐啊,怎么不留下QQ和微信呢

评论列表

  • 加载数据中...

编写评论内容

9yue20ri
发表于 2020-1-21

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.