前言
为什么分两篇呢,因为这份是我从安恒离职后的面试,那段时间是6-7月,已经相当晚了,这似乎是今年的特点
最后签了offer去华为了,小米和微众就没有好好准备,旨在套一个面经和了解他们部门,秋招回来看看
华为 - 网路安全与隐私保护工程师
jd
网上搜就有,不废话了。
华为部门巨大(和腾讯字节美团等类似),我选择的是内部网络实验室,坐标东莞松山湖
知识储备
python map的实现:
python的map一般是指python内置的字典(dict),是通过哈希表实现的,具体是一个可变数组+链表的结构。查找时间复杂度平均是O(1),最坏是O(n)。产生冲突时会二次探测
java Hashmap的实现:
jdk1.7 是数组+链表 jdk1.8后变为“数组+链表+红黑树”,当链表长度超过阈值时,会自动转为红黑树。HashMap不是线程安全的。在多线程环境中,可能会出现数据不一致的问题。为了确保线程安全,可以使用Java提供的ConcurrentHashMap或者将HashMap包装在Collections.synchronizedMap()方法中。
python执行系统命令:
os.system()
方法适用于简单的命令执行,但如果需要更复杂的交互和错误处理,建议使用subprocess
模块。或者还可以用pwntools
java命令执行的方式:
java.lang.Runtime
java.lang.ProcessBuilder
java.lang.ProcessImpl
javax.script.ScriptEngineManager
shiro550绕过
某些waf不会处理被破坏的请求,但是shiro遇到未知Http会先处理cookie字段再到servlet,所以可以有一些绕过,比如说可以尝试删掉“GET”,“remenberme” 等
shiro550的流量字符串特征:
一些无java环境的工具如xray, vulmap这种工具payload是写死的,执行命令也直接暴露在某个请求头参数里,可以直接识别rememberme是否是常规的shiro的Payload或者这些参数是否含有命令执行的敏感字符串特征。但是其他的jar的工具,完全可以处理payload后再进行利用,以达到无参数传递目的。对抗的方法:1是对常用工具进行特征识别,比如说shiro_attack-2.0.jar的header里面有techo:xxxx。2则是可以对工具内置的恶意class编码后的BASE64进行检测,比如说有些字符串开头有yy66vg
寄网
反序列化防御:
- 通过Hook resolveClass来校验反序列化的类
- 通过JEP290自定义一些黑白名单(开发人员也可以继承java.io.ObjectInputFilter类重写checkInput方法实现自定义的过滤器,,并使用ObjectInputStream对象的setObjectInputFilter设置过滤器来实现反序列化类白/黑名单控制。示例代码如下:)
在运行shell脚本时候,有三种方式来调用外部的脚本,exec(exec script.sh)方式、source(source script.sh)方式、fork(./script.sh)方式
对中间件的了解?Nginx配置前缀的关键字:
密码学类型的姿势:
aes和des的区别:
-
密钥长度不一样,aes的密钥长度128,192,256不等,des一般都是64
-
aes可以直接对整个明文进行加密,des需要对明文进行切块,所以aes的加密速度快于des
-
aes的简化算法目前已经存在攻击,des目前除了穷举无法攻破
-
具体的加密过程不一样,aes是4x4矩阵进行字节替换,行移位,列混淆,加轮加密;des则涉及一些异或
面经
2022安全岗秋招面经分享 – 燕麦粥 (oatmeal.vip)
真实面试
一面
(面试官是一个四五十岁头发花白的老头,据说是19级专家,所以问的都是偏项目和偏思路的,不会问那种八股文)
一上来先做题,16道题(印象中是8个单选,剩下是多选),主要涉及中间件的配置,web漏洞的利用和修复,以及java代码审计,个人认为做的不太好
问了项目经历,以及项目经历的细节,对我渗透的一些思路和利用的手段做了互相讨论
二面(主管面)
和二面差不多,感觉不怎么问技术细节
offer
据我了解我大概是开奖第二周被通知的,我的几个国赛朋友第一周被通知,然后就轮到我。基本上hr口头通知完,下午/晚上就可以收到offer(~比某丰好多了)
整个过程下来我感觉挺迷的,为什么安恒的面试和微步的面试好像技术细节比华为还多... 而且同样感觉水水的,美团、华为和顺丰,但只有华为毫不犹豫的发offer了(虽然是泡了很久池子,但是没鸽),晕,我只能说得多做尝试,才能破局!
58同城 - 网络安全实习生
jd
后续
去华子拒了
小米 - 攻防实习生
jd
岗位描述: 1、对公司业务系统进行上线前的安全测试; 2、负责公司业务部门的安全评估及安全策略的推进; 3、负责公司渗透测试和漏洞挖掘等工作; 4、负责MiSRC相关工作; 5、负责安全事件的应急响应、攻击检测排查等; 6、负责公司安全培训,安全基线建设等。
任职要求: 1、本科及以上学历,熟悉网络中常见通信协议及其应用; 2、对各种漏洞的产生原理、利用方式、修复方法有一定研究; 3、至少熟练掌握一种编程语言(python、java、php等); 4、熟练掌握渗透测试技巧着优先考虑; 5、有白盒审计经验者优先考虑; 6、熟悉linux操作系统。
偏攻防一点
面经
一面
网上的面经:我的秋招安全之路:小米-安全工程师-oc_牛客网 (nowcoder.com)
SSO: 对内认证,对外认证;一些实现:CAS, OAuth,OpenID
面试官:先问基础,问学校学了哪些课
我:介绍了自己计科背景,学了计算机网络,编译原理,操作系统
面试官:计网中,七层模型讲一下,应用层有哪些协议
我:略
面试官:ftp端口及其作用
我:21,22;一个用于传输数据/文件,一个用于登录鉴权(其实最好说是用于管理)
面试官:http请求的方法有哪些
我:get,post,put,delete,head (还漏了option, connect)
面试官:post和get方法传递参数有何不同,讲一讲
我:略
面试官:connect请求了解多少
我:总之答错了
面试官:arp协议了解多少
我:略
面试官:考察一下专业知识,xss你了解多少
我:(我当时直接暗示面试官放马过来),了解它的原理,利用,绕过,修复,然后每个点都提了一点点,暗示面试官问
面试官:原理讲讲
我:略
面试官:储存型xss是如何造成危害的
我:存到一些服务端的数据库或者数据结构中,并且会对其他用户暴露,服务端把刚刚储存的payload在渲染到前端
面试官:如何修复
我:输入过滤,输出编码,httponly
面试官:有没有了解过xss造成的危害?
我:1. 窃取cookie等用户凭证,2. 执行js等浏览器脚本冒用用户身份去做一些请求,3. 恶意跳转
面试官:xss可以配合哪些漏洞造成rce呢
我:讲了xss调用clash restful api去造成rce(后面面试官和我说是想我回答xss 运行浏览器js脚本打缓冲区溢出漏洞)
面试官:了解过哪些框架,tp5.0 rce聊聊
面试官:聊聊 spring 中的数据流在mvc中的传递
面试官:假如渗透测试拿到了一个命令执行的权限,后续的内网横移怎么做
我:略(大概就是回显/无回显命令执行到传/写入webshell,再到上传免杀大马,权限维持,内网信息搜集,搭建代理,提到了frp二开)
面试官:讲一下frp二开
面试官:假如你是防守,frp二开的情形如何去找到frp这个文件或者进程
面试官:假如有违规外联(dns请求),如何做一个应急
面试官:学校有没有网安课程,如何学习网安,有什么经验技巧吗
反问:面试官说是小米玄武集团的,专门做反溯源,edr这块
二面
问:聊聊你的研究方向
答:主要是说代码审计
问:代码审计人工还是工具
答:都有
问:工具的一些检测思路
答:这块答的比较好,说了3种思路,面试官比较感兴趣
问:根据危险函数回溯参数这块具体说说怎么做到
答:xxx
问: 你说用数据库查询的具体原理是如何实现的
答:和他讲了一下codeQL
问:fuzz api怎么实现的,哪些场景会用到
问:你如何构造api请求包的格式
问:操作系统了解吗
答:不是很了解(我后悔了,因为最近还没复习到操作系统)
问:后渗透,维持权限了解吗
问:后渗透有哪些操作
问:维持权限有哪些方式
问:如何写启动项,有哪些方式
问:如何写定时任务,是哪个目录
问:你聊一聊了你简历上写的cfs场景是什么吗
问:你的是怎么获得流量分析日志审计这项能力的
问:操作系统日志熟悉吗
反问,得知是北京做入侵检测的,体验较差的一点是面试官没开摄像头
挂,操作系统入侵检测后渗透这些没有好好准备
微众
jd
?
面经
一面
感兴趣你挖的day,聊聊
如何白盒审计
如何黑盒审计
你刚刚提到越权,你有挖到过越权的洞吗
看你写的熟悉redis,聊聊redis漏洞、利用、修复
可以说说你蓝队这块做过什么工作吗
可以说说你信息收集如何做吗
二面
还在等
可以的