首页 > 其他分享 >某物秋招SDL安全工程师面试

某物秋招SDL安全工程师面试

时间:2024-06-21 21:56:34浏览次数:23  
标签:文件 漏洞 秋招 SDL 服务器 某物 上传 数字证书 客户端

一、自我介绍

套路,我就不详细说了。

二、sql注入的原理、分类、防御(我发现这个非常常问)

就看我上篇文章“某手秋招安全工程师面试”吧,我就不重复写了。
面试官:现在给你一个java代码,你知道怎么去审计sql注入吗?
我:我直接说了我对java这块的代码了解比较少,对于php代码这块的比较熟,但是也还是按照php如何审计的思路说了一下。

三、XSS漏洞的原理,分类,防御,危害(这个也非常常问)

看我上篇文章“某手秋招安全工程师面试”吧,我也就不重复写了。

四、文件上传漏洞的原理、防御

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。
原理:

1. 文件上传漏洞是指用户上传了一个可执行的脚本文件,而web系统没有进行检测或逻辑做的不够安全。
2. 文件上传功能本身没有问题,问题在于上传后如何处理及解释文件。
3. 一般情况下,web应用都会允许用户上传一些文件,如头像、附件等信息,如果web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等webshell,从而达到控制web网站的目的。
4. 存在文件上传功能的地方都有可能存在文件上传漏洞,比如相册、头像上传、视频、照片分享。论坛发帖和邮箱等可以上传附件的地方也是上传漏洞的高危地带,另外像文件管理器这样的功能也有可能被攻击者所利用。

防御:

1. 文件上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。
2. 判断文件类型。在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
3. 使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
4. 使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御,例如:图床。

面试官:现在很多公司并不是像上传一个文本就直接能getshell的,是因为它的文件和应用是分离的,文件走的是一个对象,而不是文件形式,你可以理解成一个数据流的形式,那这种的话你有了解过一些安全的风险吗?
我:这块的话没接触过。
面试官:ok,那你刚刚还提到了上传白名单,你觉得doc文件是没有风险的,还是说可能有风险?
我:可能存在风险,据我所知,存在一个宏病毒,如果doc文件带有宏病毒,也是存在一定风险。

五、https协议是如何保证传输安全的

https协议是在http的协议基础上添加了一个SSL安全协议。https采用了对称加密+非对称加密的方式。
第一步:客户端需要向服务器发送一个连接请求,以请求建立一个HTTPS连接;
第二步:在客户端发出HTTPS连接请求之后,服务器会返回一个数字证书。数字证书中包含了服务器的公钥以及其他相关信息。客户端需要通过数字证书来验证服务器的身份和合法性。
第三步:在数字证书验证的过程中,客户端需要验证以下信息:
(1)数字证书是否为合法的数字证书,即数字证书是否由CA机构颁发。
(2)数字证书的有效期是否过期。
(3)数字证书中的信息是否和实际情况相符。
(4)数字证书中的公钥是否可以用来进行加密通信。
如果数字证书通过了验证,客户端就可以确认当前连接是一个安全的HTTPS连接。
第四步:当数字证书验证通过之后,客户端就可以和服务器建立安全的TLS连接。在TLS连接建立的过程中,客户端和服务器需要进行协商,以确定加密算法和密钥等参数。一旦协商完成,客户端和服务器就可以通过TLS连接进行加密通信。
第五步:在TLS连接建立之后,客户端和服务器可以通过TLS连接进行加密通信。TLS连接使用对称密钥加密算法来加密通信数据,同时使用非对称密钥加密算法来进行密钥交换。这样,客户端和服务器就可以通过TLS连接进行安全的加密通信,确保通信数据不被窃取或篡改。

六、我看你实习经历是关于文件泄露方面的,那你有了解过文本水印吗

当时回答了一个图像水印,稍微说了一下我的实习经历。但是我感觉面试官想要的不是这个。

七、对容器这块的安全有了解吗

知道一些常见容器的漏洞,比如apache、nginx。
面试官:那中间价的漏洞呢,像比如log4j或者java框架之类的
我:strusts和shiro漏洞。
面试官:那fastjson反序列化这块的原理有去了解过吗?
我:没去了解过。(可以参考https://blog.csdn.net/qq_53287512/article/details/127865920)

八、你平时代码写的多吗,主要是擅长哪块

java和python
面试官:那你现在能用java实现一个ssrf的防御类,对常见的url进行一个检测,拦截一些恶意的ssrf语句吗?
我所写代码如下:(不是很完善)

public static boolean isOk(String url){
        String[] split = url.split("://");
        String protocal=split[0];
        String[] white_list={"http","https"};       //协议白名单
        if(!Arrays.asList(white_list).contains(protocal)){
            return false;
        }
        String[] split1 = split[1].split("/");  //得到域名和目录
        String IP=split1[0];        //域名
        String[] split2 = IP.split(".");        //根据点号分割
        if(split2[0].equals("10")){     //判断是不是内网地址
            return false;
        }else if(split2[0].equals("172")&&Integer.parseInt(split2[1])>=16&&Integer.parseInt(split2[1])<=31){
            return false;
        }else if(split2[0].equals("192")&&split2[1].equals("168")){
            return false;
        }
        String[] black_list={"etc","passwd","shadow"};      //目录黑名单
        for (int i = 1; i < split1.length; i++) {       //如果访问了目录黑名单
            if(Arrays.asList(black_list).contains(split1[i])){
                return false;
            }
        }
        return true;
    }

以上就是面试的所有内容。

标签:文件,漏洞,秋招,SDL,服务器,某物,上传,数字证书,客户端
From: https://www.cnblogs.com/sbhglqy/p/18261560

相关文章

  • 某信服安全服务工程师秋招面试
    一、自我介绍阿吧阿吧二、你挖src有挖哪些,就是有没有挖到一些好的成果。这里我介绍的是前两天挖src挖到的一个存储型XSS漏洞,详细可参考“https://bbs.zkaq.cn/t/31195.html”这篇文章。面试官:一般存储型xss还可以通过哪些方式来利用呢,比如说它设置了http-only,还有哪些利用方......
  • 某手秋招安全工程师面试
    一、自我介绍自我介绍这块就根据每个人的情况介绍就好。一般来说,就是我叫xxx,是来自xxx学校xxx专业的本科生/研究生,再介绍下自己的校园经历,获得的一些奖项,如果是研究生,还可以介绍一下自己研究生生涯的科研经历等等。二、有没有挖洞经历有,但是暂时没挖到。面试官接着问:看你简历......
  • 秋招Java后端开发冲刺——基础篇2
    Java语言基础一、基本数据类型(8个)整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节,使用时一定要在数值后面加上L)注:整型类型的最高位表示数据符号位,因此实际上数据的表示范围为(−......
  • 【秋招突围】2024届秋招笔试-小红书笔试题-第一套-三语言题解(Java/Cpp/Python)
    ......
  • SDL3 入门(2):第一个窗口
    在上一篇文章中我们已经利用SDL的日志接口实现了简单的字符串输出,实际上是解决了开发环境搭建问题,接下来我们将在已有代码的基础上继续开发,实现第一个窗口的创建和背景色绘制。初始化首先设置日志输出级别:SDL_SetLogPriorities(SDL_LOG_PRIORITY_VERBOSE);因为还是开发阶段......
  • 【FFmpeg】SDL 音视频开发 ② ( SDL 视频显示函数 | 设置渲染器目标纹理 | 设置渲染器
    文章目录一、SDL视频显示函数1、SDL的渲染器和纹理之间的关系2、SDL_SetRenderTarget函数-设置渲染器目标纹理3、SDL_SetRenderDrawColor函数-设置渲染器颜色4、SDL_RenderClear函数-清除渲染器5、SDL_RenderDrawRect函数-渲染器绘制矩形6、SDL_Render......
  • 2025秋招图像处理面试题01_LBP算法原理
    问题LBP是一种常见的特征描述算法,用来提取局部的纹理特征,其原理其实很简单,下面我们就来看看它是怎么一回事吧。LBP简介LBP(LocalBinaryPatterns,局部二值模式)是一种很简单但很高效的局部纹理特征描述算子,于1994年由T.Ojala,M.Pietikäinen和D.Harwood提出,经过后续的......
  • 【力扣真题】3.哈希表|算法真题程序设计数据结构考研保研复试机试面试秋招春招蓝桥杯
    242.有效的字母异位词给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。示例1:输入:s=“anagram”,t=“nagaram”输出:true示例2:输入:s=“rat”,t=“car”输出:false说明:你可以假设字符串只包含小写字母。力扣题目链接思......
  • SDL3 入门(1):Hello, SDL3!
    在本系列中我们使用WindowsTerminal+Powershell组合作为我们在Windows系统下的终端工具,Windows11自带该环境。你也可以使用任意自己喜欢的终端环境代替,或使用鼠标执行等价的操作。源码准备我们使用git管理我们的项目,所以首先我们创建一个名为"hello_sdl3"的目录并......
  • XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
    XMLWeb服务是一种用于在网络上发布、发现和使用应用程序组件的技术。它基于一系列标准和协议,如WSDL、SOAP、RDF和RSS。下面是一些相关的内容:WSDL(Web服务描述语言):用于描述Web服务的基于XML的语言,定义了服务的接口、操作和消息格式SOAP(简单对象访问协议):是一种基于XML的协议......