面试总结|[ 渗透测试面试篇 ] 大厂面试经验分享

这次的面试,挺有收获的,做个总结,分享一下。
面试的是奇安信,渗透测试工程师,他的职位写的是安全服务工程师,据了解其实是是做渗透的。
这次是部门直接招人,所以只有两面,其他的环节都省了,还是挺快的。
面试之前是没有约面试的,就是有点突然袭击的意思吧。
就感觉还是挺吃亏的,一面面试官是个小姐姐,说简单的聊一聊,了解一下,问我有没有时间。还以为是hr简单了解情况,就说有时间,其实当时在忙,也在外面,但其实感觉还不错。
目录
一面:
1、自我介绍
2. 代码审计,你的思路是什么?
3. 应急响应你的思路
4. 处理勒索病毒,你的思路是什么,文件被加密,怎么处理呢?
5. 给你一个站点渗透,你的思路是什么?
6. 有没有挖过SRC
7. 有没有复现过经典的漏洞
8. 讲一下sql注入,具体一点,能讲多少讲多少
9. 你了解RCE漏洞吗
10. 你对逻辑漏洞,了解多少
11. 编程语言了解哪些,最熟的是哪个,用它干过什么?
12. CS工具
二面:
1. 自我介绍
2. SQl注入 原理 分类 防御
3. 按数据库了解哪些简单讲讲
4. Mysql 写函数 ?
5. 报错函数你了解哪些?
6. 预编译原理是什么?
7. MsSQL主要用到存储过程了解吗?
8. Oracle写shell怎么写?
9. redis了解过吗?未授权漏洞了解吗?
10. XSS 原理 分类 利用
11. HttpOnly有什么作用?
12. 反序列化了解过吗?
13. XXE了解过吗?
14. CSRF和SSRF的区别
15. 如果存在SSRF,端口探测时,限制了ip,如何绕过
16. 常用工具
17. 中间件漏洞了解过哪些 比如说Tomcat
18. 代码审计流程仔细讲一讲,哪一种语言你最熟悉呢?
19. 编程语言会哪些
20. PHP TP框架有学吗
21. 内网渗透流程能讲讲不
22. 如何查看内网域名
写在最后:
一面: 1、自我介绍
自我介绍的话,其实需要好好准备的,准备得越多,你临时想起来的关键词就会越多,讲的也会越自信,越流畅。
自我介绍会给面试官留下你的第一印象,是个很重要的环节。
对于应届生来说,需要明白公司看中的是什么 ?
这里我提几点:专业技能,学习能力,表达能力,沟通能力,思维灵活。
基本信息+学习经历+项目经历
基本信息+为何选择这个方向+在校经历+学习经历+项目经历+为何面试贵公司
我是xxx。对xxx感兴趣,掌握了很多这个方面的专业技能。
在大学期间做过xxx,有xxx的能力,xxx能力强,乐于xxx,对xxx能很快上手。
学习方面,除了xxx教学内容外,我还经常xxx,浏览xxx等等。
在校期间也参与过几个项目,xxx,xxx(重点介绍:什么时间,什么项目,职务,成果)。
也相信凭借自己的专业知识和工作态度,能够赢得lead和同事的信任。感谢面试官的聆听。
2. 代码审计,你的思路是什么?
代码审计内容很多,这里简单介绍一下,后续出文详细讲解。
1. 根据敏感关键字回溯参数传递过程
2. 查找可控变量,正向追踪变量传递过程
3. 寻找敏感功能点,通读功能点代码
4. 直接通读全文代码
好的代码审计辅助工具可能让我的的代码审计事半功倍。
代码审计工具:
PHP:Seay、RIPS、Fortify SCA
java:FindBugs IDEA、Android Lint
C++:Flawfinder
JS:eslint、NodeJsScan
go:goint、go tool vet、gas
Python:pylint、bandit、py-find-injection、pyt
多种语言的安全代码检查工具:sonar
商业代码审计工具:
静态分析工具:?RISP,VCG,Fortify SCA
动态分析工具:?360的sky wolf,鸟哥的taint
3. 应急响应你的思路
[ 应急响应 ]服务器(电脑)受到攻击该如何处理?(一)
4. 处理勒索病毒,你的思路是什么,文件被加密,怎么处理呢?
[ 应急响应 ]服务器(电脑)受到攻击该如何处理?(一)
5. 给你一个站点渗透,你的思路是什么?
(2条消息) 渗透测试流程详解__PowerShell的博客-CSDN博客
6. 有没有挖过SRC
对于这个问题的话,看自己实际情况,如实回答,不然就给自己挖了一个大坑。
挖过就说挖过,简单讲一讲,挖过啥,那里挖的,哇的时候是什么思路,什么漏洞,利用点是什么,你的修复思路。
没挖过,但是我有过xxx实战经历,具体的讲,思路利用过程。
7. 有没有复现过经典的漏洞
这个题目不能答没有,作为一个想入门安全圈子的小伙伴,这个必须有。
复现过哪些,最熟悉xxx,具体讲一讲。
最好是永恒之蓝,脏牛漏洞,FastJson反序列化,Apache Shiro这些经典的漏洞。
当然,log4j rce 这种新出的能讲是最好的,说明你关注安全圈时事。
8. 讲一下sql注入,具体一点,能讲多少讲多少
这就是老生常谈,放水的题目了。
最好讲全面一点,但是需要注意时间,不要讲的太长了,最多不要超过五分钟。
含义、原理、条件、危害、防御、分类、利用、常用函数、绕waf等等的方面。
(3条消息) 常见web漏洞总结------SQL注入__PowerShell的博客-CSDN博客
9. 你了解RCE漏洞吗
远程代码执行漏洞。(后续详细介绍)
原理:设计者由于设计需要提供给客户指定的远程命令操作的接口(常见于路由器 防火墙 入侵检测等设备的web管理界面上)
设计者对用户输入的命令 又没有做或者做了不严谨 的控制
导致攻击者可以输入一些其他命令
防御:一定要对输入进行严格的处理过滤或者做一个严格的白名单
php能远程执行的函数
命令执行的函数:
1. system:执行一个外部的应用程序并显示输出的结果
2. exec:执行一个外部的应用程序
3. shell_exec:执行shell命令并返回输出的结果的字符串
4. passthru:执行一个UNIX系统命令并显示原始的输出
5. popen()
6. proc_popen()
代码执行的两个函数:
1.eval(PHP代码)
2.assert(PHP代码)
3.preg_replace
10. 你对逻辑漏洞,了解多少
(5条消息) 业务逻辑漏洞__PowerShell的博客-CSDN博客
11. 编程语言了解哪些,最熟的是哪个,用它干过什么?
这个的话就比较开放了,最好多说几个了解的,php,java,JavaScript,python,c,c++等。
我对xxx比较熟悉,我用它做过xxx项目。举一个xxx项目讲一下,讲具体。
12. CS工具
cobaltstrike(具体的安装使用后续详解)
渗透测试中不可缺少的利器,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。
同时,Cobalt Strike还可以调用Mimikatz等其他知名工具。
二面: 1. 自我介绍
看上文
2. SQl注入 原理 分类 防御
看上文
3. 按数据库了解哪些简单讲讲
Mysql、MsSQL、Oracle、Access
Access:是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:.mdb。一般是asp的网页文件用access数据库
SQL Server:1433:是一个比较大型的数据库。数据库后缀名 .mdf
MySQL:3306:是一个关系型数据库管理系统。MySQL数据库大部分是php的页面。
Oracle:1521:关系数据库管理系统。常用于比较大的网站。
差异:
成本上的差距:access是不要钱的,mysql也是开源的,sql server 是收费的一般也就几千,Oracle的费用则数万。
处理能力:access支持千以内的访问量,sql server支持几千到上万的访问,而Oracle则支持海量的访问。
数据库的规模:access是小型数据库,,mysql 是中小型数据库,sql server是中型数据库,Oracle是大型数据库。
4. Mysql 写函数 ?
root权限以及网站的绝对路径。
select '一句话' into outfile '路径';
select '一句话' into dumpfile '路径';
select '' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
读文件:load file
5. 报错函数你了解哪些?
最好,十来个报错函数,全部答出来。
挑两三个具体讲解,重点讲解:floor 函数
6. 预编译原理是什么?
替换,不让sql语句编译
7. MsSQL主要用到存储过程了解吗?
xp_cmdshell(这个我不太会)
8. Oracle写shell怎么写?
不会
(7条消息) Oracle注入 - 命令执行&Shell反弹_3569-CSDN博客_oracle注入getshell
9. redis了解过吗?未授权漏洞了解吗?
(后续详解)
了解不多,有在最近的学习计划中,ridis未授权漏洞比较熟悉。ridis未授权漏洞讲明白。
简单来说,漏洞产生的条件有以下两点:
1. redis服务绑定在0.0.0.0:6379端口,而且信任了其他IP,导致了Redis服务暴露在公网上
2. 没有设置密码认证,可以免密登陆Redis服务
危害:
1. 导致敏感信息泄露,恶意执行flushall清空所有数据
2. 通过Eval执行Lua代码,通过备份功能往磁盘写入后门文件
3. 如果Redis服务以root身份运行,可以给root用户写入SSH公钥文件,直接通过SSH登陆服务器
10. XSS 原理 分类 利用
(7条消息) [ 常见漏洞篇 ]常见web漏洞总结------XSS跨站脚本漏洞__PowerShell的博客-CSDN博客
11. HttpOnly有什么作用?
不太了解
(7条消息) Cookie中的httponly的属性和作用_YG青松的博客-CSDN博客_httponly
12. 反序列化了解过吗?
php、java的必须要涉及。FastJson反序列化漏洞复现顺便讲一下最好。(后续详解)
1. php反序列化:
使用了序列化(serialize) 反序列化(unserialize) 函数
序列化之后我们可以通过接口或者网络去传输他接收到这个序列化数据之后我们要把它进行反序列化才能对他进行使用
产生原因
程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制
[反序列化的内容使用户可以控制的(前端传进来)
且后台使用了PHP中的魔法函数
用户的输入会被反序列化
反序列化的过程中我们代码会被执行就导致了安全问题]
防御:不要把用户的输入或者是用户可控的参数直接放进反序列化的操作中去。
2. Java反序列化漏洞原理
序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。
Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,
ObjectInputStream类的readObject()方法用于反序列化。
条件:如果Java应用对用户输入,即不可信数据做了反序列化处理,
利用:那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。
根源:在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制;假若反序列化可以设置Java类型的白名单,那么问题的影响就小了很多。
修复建议:
1、将服务器安装的JDK升级到官方最新版本
2、对于weblogic中间件反序列化漏洞,需要及时打上最新的补丁,或者配置防火墙策略,屏蔽掉T3协议的访问,只开放对HTTP、HTTPS访问。
3、对于Jboss、tomcat等中间件的反序列化漏洞,可以将存在反序列化漏洞的jar包升级到最新版本,但特殊情况下,需要升级的jar包种类比较多,此修复建议很费时。
4、检测防火墙配置,是否开启对Java反序列化漏洞的防范策略
13. XXE了解过吗?
(7条消息) 常见web漏洞------XXE__PowerShell的博客-CSDN博客
14. CSRF和SSRF的区别
(后续详解)
CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的
15. 如果存在SSRF,端口探测时,限制了ip,如何绕过
可以使用localhost、以及圆圈数字的方式进行绕过。
16. 常用工具
Nmap、Burpsuite、Sqlmap、Nessus,AWVS、cobaltstrike多讲一点
用过哪些,用的最多的是哪些。最好还能讲一些骚操作
17. 中间件漏洞了解过哪些 比如说Tomcat
最好熟悉,了解不多也没事,就说是遇到什么中间件,再搜索相关漏洞
1. Tomcat 任意文件写入(CVE-2017-12615)
环境:Tomcat/8.0.30
漏洞本质:Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致我们可以往服务器写文件:增加完配置之后,重启Tomcat,我们可以改readonly=true时。
修复:
将readonly=true,默认为true。
2. Tomcat 远程代码执行(CVE-2019-0232)
影响范围:9.0.0.M1 ~ 9.0.17, 8.5.0 ~ 8.5.39 , 7.0.0 ~ 7.0.93
影响系统:Windows
修复建议
这个默认是关闭的,如果打开了请关闭,若需使用请升级版本。
18. 代码审计流程仔细讲一讲,哪一种语言你最熟悉呢?
看上文,都讲一讲。重点将最熟悉的。
19. 编程语言会哪些
如上文
20. PHP TP框架有学吗
最好是学过,不然就直接没学过。
21. 内网渗透流程能讲讲不
(后续详解)
网络位置判断、信息收集、内网穿透、权限提升、清除痕迹等
22. 如何查看内网域名
net user/domain net time /domain
写在最后:
特别看重实战经验,
【面试总结|[ 渗透测试面试篇 ] 大厂面试经验分享】建议:多挖洞,多复现漏洞

    推荐阅读