问题1、你觉得当前OAuth2.0下的攻击手段有哪些?结合具体案例详细讲讲
问题2、php/java反序列化漏洞的原理?程序员/运维如何避免此类漏洞或如何防御?
问题5、宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?
问题6、为何一个mysql数据库的站,只有一个80端口开放?
问题8、在获取书面授权的前提下,如果给你一个网站,你的渗透测试思路是什么?
问题9、谈一谈Windows系统与Linux系统提权的思路?
问题12、你还会什么?多说说你觉得你会别人不会的?你的技能里边最擅长什么?
问题13、你喜欢怎样的工作,在团队内你觉得你自己的优势在哪里?能为团队创造什么价值?个人规划是什么?
概况
所面试的公司:成都某安全厂商
所在城市:成都
面试职位:渗透测试工程师岗位
面试过程
继上次一面之后的二面,线下1V2面试,大概40分钟吧。上次侥幸过了一面,这次记录下二面经过。技术问题问得都比较深入,要求对原理系统掌握,其次综合性要求也比一面要高不少,好几个问题我都被追问的没啥思路了,汗。当前环境下,网安圈也越来越卷,希望给最近找工作的小伙伴们提供参考,祝愿大家早日找到“薪”满意足的好工作。
面试官的问题
问题1、你觉得当前OAuth2.0下的攻击手段有哪些?结合具体案例详细讲讲
1.XSS和CSRF组合攻击
假设用户的浏览器中已存储了某个OAuth 2.0的访问令牌。攻击者创建了一个恶意页面,诱使用户打开。在用户不知情的情况下,页面会通过JavaScript向授权服务器发起请求,利用用户的身份进行未授权的操作(例如,转账、修改设置等)。
2.授权码攻击(Authorization Code Attack)
假设用户在某个应用中使用OAuth 2.0进行登录。攻击者通过网络钓鱼手段获取了用户的凭据,并在用户不知情的情况下发送请求,以获取授权码。如果授权服务器的重定向URI不安全,攻击者便可以拦截这个授权码,并利用它请求访问令牌,从而获取用户的资源。
3.重定向URI劫持(Redirect URI Hijacking)
攻击者在授权请求中使用了一个恶意重定向URI。当用户授权后,授权服务器将授权码发送到这个恶意URI,攻击者随即获取了用户的授权码。
问题2、php/java反序列化漏洞的原理?程序员/运维如何避免此类漏洞或如何防御?
反序列化漏洞的主要原理在于:应用程序在反序列化不受信任的数据时,可能会重建恶意对象,这些对象可以执行攻击者指定的代码。例如,攻击者可以构造特定的序列化数据,使得在反序列化时执行不安全的操作,如远程代码执行、数据库操作等。
php中围绕着serialize(),unserialize()这两个函数,如果服务器能够接收用户精心构造反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的,从而控制对象内部的变量甚至是函数。
Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。
防御思路:
1.验证用户输入数据
2.限制可反序列化的类,如unserialize()参数
3.使用安全框架和库
4.异常处理机制
问题3、如果一台服务器被入侵后,你会如何做应急响应?
1.准备已经编译好的工具以及取证分析等工具干净可靠放U盘。
2.初步判断事件的类型,是被入侵、ddos还是其它的原因。
3.首先抑制范围、影响范围,隔离使受害面不继续扩大。
4.寻找原因,封堵攻击源。
5.把业务恢复至正常水平。
6.监控有无异常,报告、管理环节的自省和改进措施。
问题4、目前已知哪些版本的容器有解析漏洞,具体举例。
IIS
1、PUT漏洞
2、短文件名猜解
3、解析漏洞
IIS 6.0
/xx.asp/xx.jpg “xx.asp”是文件夹名
IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
Apache
1、解析漏洞,上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
2、目录遍历
Nginx
1、文件解析
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。
空字节截断 xxx.jpg%00.php
2、目录遍历
3、CRLF注入
问题5、宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?
指在处理用户输入的宽字符(如GBK、UTF-16或UTF-32等)时,应用程序未能正确解析或过滤这些字符,从而导致安全漏洞。
比如在mysql中使用了gbk编码,占用2个字节,而mysql的一种特性,GBK是多字节编码,它认为两个字节就代表一个汉字,所以%df时候会和转义符5c进行结合,所以单引号就逃逸了出来,当第一个字节的ascii码大于128,就可以了。SQL注入中利用宽字节注入能够把过滤转义符\吃掉从而绕过。
问题6、为何一个mysql数据库的站,只有一个80端口开放?
1、更改了端口,没有扫描出来。
2、可能是站库分离。
3、可能3306端口不对外开放
问题7、如何绕过CDN获取目标网站真实IP,谈谈你的思路?
查询历史DNS记录:查看IP与域名绑定的历史记录。
利用子域名:通过工具如,查找子域名,尝试解析不在CDN上的IP地址。
网络空间引擎搜索:使用fofa等工具,输入网站标题或正文特征,查找IP域名。
利用SSL证书:使用Censys工具,将域名相关参数组合进行搜索,查看符合条件的证书及相关IPv4主机列表,找到真实原始IP。
利用HTTP标头:在Censys上组合搜索参数,通过比较HTTP标头找到原始服务器,如80.http.get.headers.server cloudflare可查找由CloudFlare提供服务的网站相关信息。
利用网站内容:浏览网站源代码,寻找独特代码片段。还可能发现类似phpinfo、网站信息
使用国外主机解析域名:国内很多CDN厂商只做国内线路,使用国外主机直接访问可能获取真实IP。
问题8、在获取书面授权的前提下,如果给你一个网站,你的渗透测试思路是什么?
其实这是一个非常大的话题,渗透大部分思路都是如此,而面试官是想听到你回答不一样的答案让人眼前一亮 如何才做到让人眼前一亮都需要看你的经验,把你实践的过程拿出来说,以及遇到什么问题如何解决,最终取得成果 渗透其它大同小异,而做为渗透者知识的储备、基础扎实、耐心、细心都是必不可少。
问题9、谈一谈Windows系统与Linux系统提权的思路?
Windows最基本的就是Exp提权,数据库SQLServer、MYSQL UDF等、第三方软件提权。除此之外提权的成功与否和在于信息收集也非常重要,你对这台服务器和管理员了解多少。
Linux也是类似,除了EXP或者高版本的内核无法提权之外,通过第三方软件和服务,除了提权也可以考虑把这台机器当跳版,达到先进入内网安全防线最弱的地方寻找有用的信息,再迂回战术。还有下面:
suid和guid错误配置
滥用sudo权限
以root权限运行的脚本文件
计划任务
通过键盘记录窃取密码
问题10、SSRF漏洞的成因、防御、绕过
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档,等等。常用攻击方式包括:
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序;
3.对内网web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。
防御思路:严格的输入过滤、使用代理服务器、限制访问内部资源、日志和监控。
绕过方法:
1.编码绕过,攻击者可能使用URL编码、双重编码等手段绕过输入过滤。
2.利用内部服务,来获取敏感信息。
3.DNS重绑定,使得原本合法的域名解析到攻击者控制的IP上。
问题11、有什么比较曲折的渗透经历
这个问题想知道你工作渗透到什么样的程度,只是简单的漏扫搬砖,还是有毅力坚持完成整个渗透,如:对目标不放弃,坚持一个月最终通过各种手段,曲折的过程拿下目标。
问题12、你还会什么?多说说你觉得你会别人不会的?你的技能里边最擅长什么?
自己会借助AI工具来绕WAF,因为之前学过C++语言对底层了解较多,写得免杀木马存活时间也挺久的。
(其实我想说,我是搞笑气氛组,如果兄弟们熬夜熬不动了,我可以讲个冷笑话,也可以跑腿买夜餐,哈哈)
问题13、你喜欢怎样的工作,在团队内你觉得你自己的优势在哪里?能为团队创造什么价值?个人规划是什么?
现场连环问啊,这种问题就是行业深度认知问的问题。不是技术基础的,而考察的是你和公司团队的匹配度,你的宏观认知能力,考验的是你求职的动机与是否想清楚。我的建议是实话实说,不要套路,除非你想去镀金,我并不太赞成镀金这种工作态度,因为你很可能新工作会如履针毡。
总结
大概就这么多内容吧,其中技术方向的内容只是一方面,更多的是综合能力的展示。多说一点,大厂相对来说对学历看重一些,名牌985院校本身就是加分项;此外最好能拿到几本cnvd证书、SRC月榜上几次、或CTF竞赛有名次。