某程旅行安全工程师一面

news2024/12/25 13:29:59

一、自我介绍

阿吧阿吧,不多说了

二、两段实习经历,看你在南京中孚数据安全部做实习生,你能大概讲一下做什么的吗

当时做的是一个隐写溯源项目,是我们实验室跟南京中孚那边共同合作的。主要是针对电子文档信息泄露,数据泄密问题,开发涉密文档隐写溯源系统,实现敏感信息泄露追踪溯源技术,解决涉密文档遭到泄密后无法找到泄密源头的难题。我主要负责的是:
(1)文本图像中扰动变形字体的字形匹配算法,带领团队设计制作扰动变形字体10000余字;
(2)版式嵌入隐写模块,主要针对pdf,ofd等版式文件进行信息隐藏嵌入,实现自动化编译脚本和国产化平台环境适配以及后续功能测试,编写版式嵌入模块详细设计说明书。

面试官:国产化平台是什么
我:我们这个溯源系统除了可以在windows上安装,也可以适配主要是方德、龙芯、飞腾这三个国产化平台。
面试官:那你那个脚本主要写的是一些嵌入式代码吗?
我:不是,我写的是一个自动化脚本,就是我们这个溯源系统是由多个模块相互依赖才能编译成功的,我所做的就是将这些编译的过程写成了一个脚本,实行自动化。
面试官:这个东西有在哪里应用吗
我:这个项目是公司的一个保密项目,暂时只在公司内部推行。
面试官:最终达成的效果有在公司内部做过验证吗
我:有的,在我结束实习之前,识别率可以达到70%,后来实习期结束回到学校后,公司有没有再做优化就不知道了。

三、聊一聊华为杯第一届网络安全创新大赛吧

这个大赛是去年由华为发起的一个国家级比赛,这个网络安全创新大赛主要分为三个赛道,一个是揭榜挑战赛,一个是创意作品赛,一个是CTF网络攻防大赛。我参加的是CTF网络攻防大赛这个赛道。

面试官:打CTF你主要负责哪一块
我:主要负责web和misc这两块。
面试官:那聊一聊web安全方面的知识。

四、说一下sql注入的基本原理和防御

sql注入的基本原理:通过某种方式将恶意的SQL代码添加到输入参数中,然后传递到SQL服务器使其解析并执行的一种攻击手法。
防御方式:
(1)普通用户和系统管理员用户的权限要有严格的区分
(2)预编译,如使用参数化语句和绑定变量
(3)加强对用户输入的验证,识别恶意内容,过滤掉某些危险语句
(4)多使用数据库自带的安全参数
(5)转义,把用户的输入当成文本以及用斜杠来转义
(6)数据库异常信息隐藏
(7)防火墙,黑名单,禁止某些IP访问
(8)对数据库信息进行加密
(9)禁用某些参数,如secure_file_priv
(10)设置陷阱账号:设置两个帐号,一个是普通管理员帐号,一个是防注入的帐号。将防注入的账号设置的很像管理员,如 admin,以制造假象吸引软件的检测,而密码是大于千字以上的中文字符,迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机。

面试官:预编译能解决所有的sql注入问题吗?
我:应该不行吧,我只知道预编译是先将sql语句编译完,再将用户输入的语句当成字符串拼接在sql语句之后的。(像这种绝对性的语句,有点慌)
后来经过上网查证,果然是不行的,原因有四点:
(1)预编译不能解决所有SQL注入:比如表名/列名/排序动态传入的场景,原因是这些地方不能预编译,因此很多人还是直接拼接的,且囿于对预编译的信赖,从外到里没有过滤。
(2)可以预编译的地方也有可能出现问题:注入一般爆发在LIKE语句/IN语句中,因为这两个地方的预编译写法都有些特殊,很多开发者懒得去搞,就直接拼接了。
(3)在SQL语句的写法上,直接拼接比预编译简单太多了,没有接触过信息安全的初学者写出来的代码很大可能存在漏洞;就算是有经验的程序员,在快速上线的压力下,也没有时间再去考虑信息安全的问题。
(4)有太多有漏洞的老代码来不及或不能换上预编译,只能靠WAF苟活,而WAF这种东西本身就是在用户体验与安全性之间的一种矛盾集合体,总有被绕过的可能性。

五、XSS的基本原理和防御方式

xss的基本原理:xss是跨站脚本攻击,通常指攻击者在网页中嵌入恶意代码,用户访问网页或点击链接触发恶意代码而被攻击。
防御方式:
(1)架设WAF,虽然不能完全解决XSS漏洞,但可以拦截大部分敏感数据,防止黑客利用;
(2)对用户的输入进行过滤,对输出进行转义处理
(3)使用htmlspecialchares之类的函数,设置httponly
(4)设置CSP

面试官:CSP策略为什么能够防止xss?
我:CSP本质上是一个白名单,它规定了浏览器能访问哪些外部资源,大大增强了网页的安全性。
面试官:如果采用CSP一定能够绝对防御XSS吗?
我:不能吧(像这种绝对性的语句,我一般回答都是否定的,除非非常了解),如果真的能绝对防御,那只要网站设置了CSP策略,就不会有XSS漏洞了。

六、fastjson漏洞有了解过吗

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,parse和parseObject。有三种利用方式:JNDI注入、Templateslmpl加载字节码、BCEL加载字节码。fastjson主要利用的是@type注解,攻击者可以将恶意的payload写在@type注解中,然后通过某些关键函数,比如toString()函数会将当前类转为字符串形式,会提取类中所有的Field,自然会执行相应的getter、is等方法。
当第一次漏洞爆出来的时候,官方引入了checkAutoType安全机制,默认情况下autoTypeSupport关闭,不能直接反序列化任意类,而打开autoTypeSupport之后,是基于内置黑名单来实现安全的,fastjson也提供了添加黑名单的接口。但是如果开启了autoType,可以在@type的前后分别加上“L;”来进行绕过黑名单的限制。
第二次修复,官方将原本的明文黑名单转为使用了Hash黑名单,同时之前版本一直存在的使用类描述符绕过黑名单校验的问题尝试进行了修复。但是如果类第一个字符是L,结尾是;,会使用substring函数进行去除,显然可进行双写绕过。
第三次修复,官方修复上一个版本中双写绕过的问题。但是在loadClass的过程中,还针对[也进行了处理和递归,那么也可以利用[进行黑名单的绕过。
第四次修复,官方修复了使用[绕过黑名单防护的问题,在此版本之后,由字符串处理导致的黑名单绕过就结束了。

面试官:那fastjson2有了解过吗?
我:没了解过。
后来上网查找相关资料,也没找到特别详细的,如果有大佬了解的话,能不能给个链接。

七、科研虚假信息检测具体是怎么样的

这个是我小论文的研究方向,我所采用的数据集是twitter15和twitter16,这两个数据集都是自带标签的,由于数据集的标签是分为四类的,所以我的研究也是个四分类问题。我采用的是图神经网络结合预训练模型Bert的一种方式对数据集进行训练和验证。由于数据集的数量只有几千条,所以在做实验的时候,我将数据集划分成5份,每次拿其中的四份进行训练,剩下的一份进行验证,总共进行5次实验。

八、给你一个场景:公司现在要做一个文件水印,给公司所有的敏感文件打上文件水印要保证文件复制、修改、新增、另存为都能够溯源的到,你会怎么做?

第一个我能想到的就是对字体进行修改,就像我做的那个项目,设计一套字体;或者说在文本的字里行间嵌入一些人眼不可见但是计算机能识别的标签。

面试官:那这样能解决另存为的问题吗?特别是你之前做的那个项目能解决另存为的问题吗?
我:应该不行,我之前做的那个项目只要是针对增删改查操作进行溯源,没有对另存为这个操作进行设计。
面试官:那你开发这个电子文档数字水印的时候有了解过其他的技术方案吗
我:没有,我们这个项目是我们实验室的老师跟中孚那边的高级工程师讨论出来的结果,我们就是按照老师给我们的文档进行代码上的编写,没有考虑过其他的设计方案,也没有对整个电子文档数字水印方案进行调研。

九、那你平时学习渗透或者项目上需要用到的知识,你是从哪里获取

第一个就是一些安全社区,比如freebuf,先知社区,奇安信攻防社区;第二个就是b站上的一些教学视频;第三个就是询问身边的大佬。

十、你平时有写过一些小工具之类的吗?小脚本呢?

小工具之类的没写过,但是小脚本写过。比如就是在做ctf题的时候,需要我们在0.5秒之内作出反应,这个时候就需要编写脚本去完成这个功能。

十一、你平常用的最多的安全工具是什么

第一个就是burpsuite,其次的话就是kali系统中自带的一些渗透工具,比如msfconsole和cs,还有就是sqlmap和漏洞扫描之类的一些工具。

十二、再给一个场景:比如现在有一个任务,是你之前完全不熟悉的,现在给你一个目标,然后需要你实现流量异常检测,那你怎么去开展工作

第一步上网搜索异常流量的定义,第二步可以总结异常流量的特征;第三步可以根据异常流量的特征进行监测,更进一步就是编写脚本,实现自动化监测;第四步可以在任何可能发生的地方,比如防火墙,DMZ区域之类的地方部署编写好的脚本,实现实时监测。

十三、我们公司是一个多地方办公的,在北京,苏州,成都都有办事处,如果你入职了话,你更想去哪个地方

这就是一个开放性的问题了,每个人的答案都可能不同,因人而异。

下面就是反问环节了。

 声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

免费领取安全学习资料包!


渗透工具

技术文档、书籍

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

应急响应笔记

学习路线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1574393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛市来临,模块化赛道可能会出现下个以太坊?

市场专家普遍预测,2024年将成为加密货币市场迎来新一轮牛市的关键时刻。研究人员将下一次比特币(BTC)减半以及2024年现货BTC ETF(交易所交易基金)的可能性视为推动下一次牛市的潜在因素。这一牛市的可能爆发有望吸引大…

C# Web应用调用EXE文件的一些实践

目录 需求 范例运行环境 可执行文件的设计 调用可执行文件方法 RunExecuteFile RunShellExecuteFile 方法的区别 WEB调用举例 小结 需求 最近同事使用Python开发了一款智能文字转语音的程序,经讨论部署在WINDOWS环境服务器下,因此需要生成目标…

C语言函数实现冒泡排序

前言 今天我们来看看怎么使用函数的方式实现冒泡排序吧&#xff0c;我们以一个数组为例arr[] {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。 代码实现 #include<stdio.h> void bubble_sort(int arr[], int sz) {int i 0;for (i 0;i < s…

如何使用GraphQL和Apollo构建一个宝可梦应用

宝可梦是一个由视频游戏、动画系列与电影、交换卡牌游戏以及其他相关媒体组成的日本媒体特许经营权。 在本文中&#xff0c;我们将使用一个宝可梦GraphQL API&#xff0c;该API提供有关不同宝可梦的数据。 我们将使用Apollo和GraphQL来处理数据获取&#xff0c;以及React来构…

数据库之DCL操作(用户、访问权限。)

DCL英文全称是Data control language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 1.管理用户 1.1查询用户 select * from mysql.user; 其中 Host代表当前用户访问的主机&#xff0c;如果为localhost&#xff0c;仅代表只能够在当前本机访问&…

git上传到本地仓库

摘要&#xff1a;本地初始化init仓库&#xff0c;进行pull和push&#xff1b;好处是便于利用存储设备进行git备份 git init --bare test.git 随便到一个空的目录下git clone 然后使用git上传 把git仓库删除之后再clone一次验证一下是否上传成功&#xff1a; 如果在ubantu上面没…

嵌入式面向对象学习 RT-Thread I/O 设备管理框架 设备驱动层 案例测试

嵌入式面向对象 RT-Thread I/O 设备管理框架 设备驱动层 注&#xff1a;本文介绍性内容转载于《RT-Thread记录&#xff08;十、全面认识 RT-Thread I/O 设备模型&#xff09;》 注&#xff1a; 本次使用的开发板 &#xff1a; ​ 兆易创新GD32F407VET6开发板 ​ 雅特力科技…

c++的学习之路:7、类和对象(3)

目录 一、初始化列表 二、static成员 三、友元 四、内部类 五、匿名对象 六、类和对象的思维导图 一、初始化列表 初始化列表&#xff1a;以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个"成员变量"后面跟一个放在括号中的初始…

求m和n的最大公约数(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int remainder 1;int m 0;int n 0;int middle 0;//提示用户&#xff1b;printf("请输入整数m和n的值&#xff…

辅助PC端教程

使用谷歌浏览器打开京东,并登录好账号进入到 https://home.jd.com/ ,在根据下面操作 更多工具 - 开发者工具,会有一个窗口打开,选择network,点击XHR

撸代码时,有哪些习惯一定要坚持?

我从2011年开始做单片机开发&#xff0c;一直保持以下撸代码的习惯。 1.做好代码版本管理 有些人&#xff0c;喜欢一个程序干到底&#xff0c;直到实现全部的产品功能&#xff0c;我以前做51单片机的项目就是这样。 如果功能比较多的产品&#xff0c;我不建议这样做&#xff0…

编译原理实验2(自上而下语法分析)

一、实验目的 给出 PL/0 文法规范&#xff0c;要求编写 PL/0 语言的语法分析程序。通过设计、编制、调试一个典型的自上而下语法分析程序&#xff0c;实现对词法分析程序所提供的单词序列进行语法检查和结构分析&#xff0c;进一步掌握常用的语法分析方法。选择有代表性的语法…

一款轻量、干净的 Vue 后台管理框架

开始之前 在开始介绍之前我想谈谈为什么要自己做一个后台管理&#xff0c;我知道很多人都用一些开源的后台管理项目&#xff0c;这些老前辈有很多亮点值得学习&#xff0c;但是存在的一些问题同样不可忽视&#xff0c;我认为很多开发者会被困扰(仅代表个人观点) 技术栈老旧不升…

面试(03)————多线程和线程池

一、多线程 1、什么是线程?线程和进程的区别? 2、创建线程有几种方式 &#xff1f; 3、Runnable 和 Callable 的区别&#xff1f; 4、如何启动一个新线程、调用 start 和 run 方法的区别&#xff1f; 5、线程有哪几种状态以及各种状态之间的转换&#xff1f; 6、线程…

Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 1…

flex布局align-items和align-content、justfiy-content的区别

justfiy-content&#xff1a;定义主轴的对齐方式align-items&#xff1a;定义交叉轴的对齐方式align-content&#xff1a;将flex子项作为一个整体起作用 只在两种情况下有效果&#xff1a; ①子项多行且flex容器高度固定 ②子项单行&#xff0c;flex容器高度固定且设置了fle…

Mac安装配置Appium

一、安装 nodejs 与 npm 安装方式与 windows 类似 &#xff0c;官网下载对应的 mac 版本的安装包&#xff0c;双击即可安装&#xff0c;无须配置环境变量。官方下载地址&#xff1a;https://nodejs.org/en/download/ 二、安装 appium Appium 分为两个版本&#xff0c;一个是…

HarmonyOS实战开发-屏幕属性(仅对系统应用开放)

介绍 本示例主要展示了屏幕管理相关的功能&#xff0c;使用ohos.display、ohos.screen接口&#xff0c;ohos.display接口提供获取默认display对象、获取所有display对象&#xff0c;开启监听、关闭监听功能&#xff1b;ohos.screen接口提供创建虚拟屏幕、销毁虚拟屏幕、扩展屏…

LeetCode-热题100:118. 杨辉三角

题目描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]…

什么软件可以保密公司文件?

#天锐绿盾# 天锐绿盾是一款专为企业设计的文件加密与数据防泄密软件&#xff0c;旨在通过一系列高级安全功能来保护公司的敏感信息和重要文件不被未经授权的访问、窃取或泄露。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfe…