00x00 摘要

笔者作为网络安全的初识者,从求职者的角度总结了一点点关于渗透测试工程师求职面试的要点给即将毕业的大学生(实习生和应届生)予以参考,以便能更好更快地找到一份自己满意的工作。总结基于笔者本人的几次面试经历,都是自己在各招聘网投简历(广州的几家公司)。

这里简单自我介绍一下:
我自学web渗透和Android逆向半年有余,目前已有将近一年的实习经验,计算机网络专业的专科生,通过赛事接触web渗透,实习时接触Android逆向,继而初识网络安全。没有什么值得吹嘘的事,O(∩_∩)O哈哈~,没事就学习研究。比较感兴趣的方向有:WEB渗透测试、Android逆向、IOT安全、等级保护。
个人博客 https://laoel.github.io

00x01 现场面试准备

  1. 简历(打印3份以上,彩色),身份证,毕业证等资料;

  2. 电脑(吃饭的家伙,无线鼠标,电源线等);

  3. 本子和笔,着装整洁,守时(约好时间,提前20分钟到);

  4. 面试公司的认识(地点,看看公司官网,了解公司发展时间戳,部门等)。

00x02 对于电话面试(技术员工)- 可看着读

a. 约好时间并提前15分钟找个安静,没人打扰的地方,注意手机电量和信号;

b. 站着进行电话面试,保持微笑,通话可录音;

c. 一份简历,本子和笔,耳机等(看着简历来);

d. 先想好,面试官会问的问题及答案,记要点(渗透测试的思路等)。

00x03 面试官问的问题(技术员工或部门经理+HR)

Q1 自我介绍

1)可参照简历

2)有条理(三分钟左右)

Q2 一个网站的渗透测试思路,流程(给你一个网站,怎么做?)

1)信息收集

       a. 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)

       b. 网站指纹识别(包括,cms,cdn,证书等),dns记录

       c. whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)

       d. 子域名收集,旁站查询(有授权可渗透),C段等

       e. google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等

       f. 扫描网站目录结构,爆后台,网站banner,文件等敏感文件泄漏等

       i. 传输协议,通用漏洞,exp,github源码等

2)漏洞挖掘

       1> 浏览网站,看看网站规模,功能,特点等

       2> 端口,弱口令,目录等扫描

       3> XSS,SQL注入,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等

 3)漏洞利用 | 权限提升

       a) mysql提权,serv-u提权,linux内核版本提权等

 4)清除测试数据 | 输出报告

       i 日志、测试数据的清理

       ii 总结,输出渗透测试报告,附修复方案

 5) 复测

       验证并发现是否有新漏洞,输出报告,归档

Q3 一个APP的逆向分析思路(给你一个APP,怎么做?)

这里简单列一下app测试的大纲,详细不便放出(可参照OWASP的 mstg):

1代码保护检测,2数据存储安全,3加密算法,4四大组件安全,5应用规范等( 具体的可关注我 的博客,后续会发布相关的文章 )。

Q4 简述某一漏洞的原理和渗透手法(SQL注入,XSS,CSRF等)

SQL注入- 百度百科

  1. SQL注入原理

    a. SQL(结构化语句查询)
    
    b. 提交参数(调用数据库查询)的地方是用户可控的,并未做任何过滤处理
    
    c. 分 数字型,字符型,搜索型,POST注入,Cookie注入,延时注入,盲注等
  2. SQL注入,注入方法

1)如果是get型号,直接,sqlmap-u “注入点URL”.

2) 如果是post型诸如点,可以sqlmap-u “注入点URL” –data=”post的参数”

3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用 * 号替换,放到文件里,然后sqlmap -r “文件地址”

XSS跨站脚本攻击 - 百度百科

  1. XSS原理

网站未对用户输入的数据做过滤处理,构造特定的JS脚本插入到文本框可引发XSS,会被浏览器解析,执行。

  1. XSS常见攻击语句
1
2
3
4
5
<BODY onload="alert('XSS')">
<script>alert(document.cookie)</script>
<iframe src="javascript:alert(1)"></iframe>
<svg /onload=prompt(1)>
<img src=" "=" " onerror="alert('xss')">

Q5 语言

1,python,JAVA,算法,二进制等编程能力(笔者暂未学,不深入探讨)

2,ARM汇编(基本的汇编指令,寄存器等)

3,英语(CET-4,CET-6)

Q6 WAF bypass

1,关键字可以用%(只限IIS系列)。比如select,可以sel%e%ct

2,通杀的,内联注释,如/!select/

3,编码,可两次编码

4,multipart请求绕过,在POST请求中添加一个上传文件,绕过了绝大多数WAF

5,参数绕过,复制参数,id=1&id=1

6,内联注释

Q7 Kali的使用(Linux系统)

kali菜单中各工具功能 - 努力改个网名 - 博客园

whatweb 指纹识别

dirb 目录扫描

whois whois查询

无线攻击套件

字典生成套件

爆破工具

Q8 OWASP-Top10

web

A1 注入, A2 失效的身份认证, A3 敏感信息泄露, A4 XML外部实体(XXE), A5 失效的访问控制, A6 安全配置错误, A7 跨站脚本(XSS), A8 不安全的反序列化, A9 使用含有已知漏洞的组件, A10 不足的日志记录和监控

https://www.owasp.org/index.php/Top_10-2017_Top_10h

mobile

M1-平台使用不当,M2-不安全的数据存储,M3-不安全的通信,M4-不安全的身份验证,M5-加密不足,M6-不安全的授权,M7-客户端代码质量问题,M8-代码篡改,M9-逆向工程,M10-无关的功能

https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10

Q9 网络安全事件应急响应(如,一业务主站被挂黑页的处理流程及应对方法)

1. 取证,登录服务器,备份,检查服务器敏感目录,查毒(搜索后门文件 - 注意文件的时间,用户,后缀等属性),调取日志(系统日志,中间件日志,WAF日志等);

2. 处理,恢复备份(快照回滚,最近一次),确定入侵方法(漏洞检测,并进行修复)

3. 溯源,查入侵IP,入侵手法(网路攻击事件)的确定等

4. 记录,归档--------预防-事件检测-抑制-根除-恢复-跟踪-记录

通用漏洞的应对等其他安全应急事件

Q10 提交过的漏洞

国内外的漏洞提交平台(先知、漏洞盒子),各SRC等

Q11 其他优势

1,新兴技术的研究(IOT安全,区块链,人工智能,机器学习等)

2,个人博客(原创文章),投稿,人脉,安全峰会,安全研究Paper, 安全议题分享等

3,比赛(CTF,团队比赛等),线下培训

4,在校经历(获奖,个人项目,团队活动,担任学生干部等)

Q12 读过的技术书籍(学习的途径)

《白帽子讲web安全》、《ios应用逆向工程-第2版》、《Android应用安全防护和逆向分析》、《汇编语言-第3版》、《OWASP-MSTG》、《C#灰帽子:设计安全测试工具》

00x04 问面试官的问题

q1 贵公司,信息安全部门的规模,发展等

q2 劳动合同(实习生签三方协议和转正问题),是否解决户口

q3 薪资(税后),奖金,股票期权,福利,活动,补贴 等

q4 任职后的工作职责,内容,出差,时间等

00x05 面试总结

  1. 记录面试官的问题和自己的回答

  2. 查漏补缺

  3. 收获

  4. 是否通过,下次面试或报道入职时间

00x06 扩展阅读

网络安全、Web安全、渗透测试之笔经面经总结(三) - christychang

Web 安全渗透方面的学习路线? - 知乎

【分享】一套实用的渗透测试岗位面试题,你会吗? - Shun’s Blog

面试前都需要做些什么准备?- 知乎