某大厂安全工程师一面分享

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 某大厂安全工程师一面分享

介绍

上周面了某互联网大厂被刷(具体不便透漏)


感觉他们需要真正的大佬,我这种混子怕是没希望进去了,唉


笔者是某211本科,计算机不强势,学校甚至没有一个安全相关的社团,基本全靠自学


面试时间很长,是我经历最长的一次,大概一个半小时,没有算法题,纯粹聊技术


(正常官网投递简历渠道,没有内推,没有特殊要求)

**


面试内容

**


问:看你做java多一些,讲讲java内存马


答:servlet型,spring的controller和interceptor型,然后具体展开,比如context如何获取,怎样结合反序列化利用等


问:那你讲下如何查杀java内存马


答:github有大佬写过内存对象搜索工具,之前看过一篇相关的文章,然后展开编了一些。主要思路是利用Java Agent技术遍历所有已经加载到内存中的class,是否恶意类名,再web.xml是否匹配得到,是否能找到本地classpath下对于字节码文件,classloader是否合法


问:冰蝎和哥斯拉了解吗,讲讲原理


答:用过不知道原理


问:你在长亭和字节实习做了什么事


答:实话实说


问:谈谈绕waf的实战经验


答:sql注入开始,分块传输内联版本注释,fuzz参数污染等等,然后谈上传绕content-type改filename绕文件头,xss的一些技巧等


问:熟悉webshell免杀吗


答:很早以前做过,大都忘了,比如参数覆盖,编码解码,能想到的都编了下(最近认真研究了下JSP Webshell免杀,参考https://github.com/EmYiQing/JSPHorse


问:做过其他免杀吗


答:cs和msfvenom玩过一点,比如shellcode编码绑exe等,然后花指令,异或编码,golang加载器,还有tidesec在github公布的文档和工具


问:谈谈fastjson反序列化原理和利用链吧


答:jdbcrowsetimpl,templatesimpl,basicdatasource,mysql connector等,比如jdbcrowsetimpl的setAutoCommit如何触发到lookup,lookup底层怎样实例化remoteobject。BasicDataSource的两种情况,toString触发点和高版本fastjson的$ref特性,以及跟入后BCELClassLoader的问题


问:数据结构熟悉吗,谈谈红黑树原理


答:从搜索二叉树,avl树的概念引入,主要是多种情况左右旋和染色情况的分类讨论,事先准备过的经典八股文


问:java的hashmap用到红黑树,讲下原理


答:散列表,链表加红黑树数组。围绕什么情况下链表转红黑树,什么情况下扩容,碰撞解决原理和扩容原理等方面开始背诵


问:有没有流量分析的经验


答:经常抓包,tcp到http都有(面试官提示不是这种,那就不知道了)


问:谈谈代码审计经验


答:正好最近看了java代码审计的书,谈了下各种基础web漏洞审计技巧,以及mybatis,springmvc等常用框架审计。联想到先知和freebuf等平台看过的文章,开始分享


问:看你有些cnvd和cve,讲讲过程


答:审计+黑盒+运气,其实都算是比较水的,含金量不高


问:有打过知名的ctf吗


答:没有,只玩过一些小ctf,比如ctfhub等


问:熟悉内网渗透,域控这些吗


答:了解不深,但基本的操作没问题


问:谈谈java反序列化的cc链吧


答:四个transformer的作用,templatesimpl,priority queue,tiedmapentry,hashmap和hashtable,包括长亭师傅的k1-k4,围绕这些来谈,其实都是换汤不换药。readObject跟下去,找lazymap.get触发transform方法,由于多态,lazymap本质是map,找到map.get这样比较常规的操作即可


问:看你重写过sqlmap,读过sqlmap源码吗


答:这个比较擅长,之前写过几篇sqlmap源码分析文章,从注入检测,dbms判断,如何脱库,到如何进一步利用,osshell原理等开始讲


问:看你熟悉mysql,讲讲索引,存储结构等


答:八股文背诵开始…


问:讲讲mysql为什么要用b+数


答:八股文背诵开始…


问:看过mysql源码吗


答:…


问:分析过二进制漏洞吗


答:没有,但ida和od基本使用没问题


问:有没有用汇编写过东西


答:简单的课程实验,破解一些crackme可以看懂汇编


问:谈谈linux内核的漏洞


答:…


问:挖过缓冲区溢出漏洞吗


答:没挖过但做过复现的实验,fuzz确定溢出点,打shellcode,绕aslr,反弹shell


问:python的沙箱逃逸了解吗


答:做过复现不懂原理


问:python的flask模版注入讲讲


答:做过复现和利用,猜测原理是利用python一些系统内置函数,构造命令执行,但没有具体分析过。然后谈了下thymeleaf的模版注入


问:抽象语法树了解吗


答:之前做过js逆向需要相关技术,目前在做java自动化代码审计工具,也需要先对语法进行分析,不过我是用写好的库,技术方面应该是编译原理相关,涉及到词法分析和一些算法吧


问:讲讲rasp的原理


答:程序运行时的自我保护,不修改代码就可以防护,比如asm,javaassist,javaagent修改jvm的字节码,实现拦截等功能


问:谈谈rasp的对抗


答:研究不深,看过先知有相关文章,忘记了


问:谈谈php和golang语言本身的安全问题


答:这方面了解不深,瞎编了


问:机器学习和算法相关懂嘛


答:做过一些简单的,比如svm和knn在xss检测方面的实践(面试官好像很重视这个问题,深入和追问一些细节,但我只懂一些皮毛)


问:谈谈操作系统原理,进程内存管理这些


答:八股文背诵开始…


总结

这是我经历过最难的面试,虽然没有算法题但感觉还是很难。不清楚本科生里能全会的有多少


人外有人,距离大厂还有很远的路要走


卷大厂的大佬太多,看来我只能去小厂了


更新:已躺平,拒绝了所有面试和笔试,静心学习


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
云安全 安全
对于工程师的一些理解
对于工程师的一些理解
98 0
|
前端开发 架构师 Java
1.5 从程序员到工程师
1.5 从程序员到工程师
|
缓存 架构师 Serverless
如何带领团队“攻城略地”?优秀的架构师这样做
架构师是一个既能掌控整体又能洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
17175 0
|
前端开发 JavaScript 中间件
不四:产品工程师的修炼之路
我是不四,毕业后一直在阿里和蚂蚁工作,不四是我在阿里的花名,社区中一般以另一个花名 “死马” 出现。每一个人的成长轨迹都不一样,一路上遇到的机遇也各不相同,这次分享也仅站在一个普通工程师的角度来分享我的成长经历和贯穿其中的一些个人习惯。
不四:产品工程师的修炼之路
|
机器学习/深度学习 供应链 前端开发
技术人的灵魂 3 问,阿里工程师如何解答?
在业务团队做事的工程师摸爬滚打了一段时间后,一定会有所疑问。团队同学在最初的一段时间都提出这样的疑惑:如何在业务中发现有技术价值的问题?发现问题后如何思考和发起再到解决?最后的技术结果跟业务结果如何衔接?很多时候我们听别人说“思考是不够的/要多思考”,其实都是在说这几点。接下来,阿里高级前端技术专家氐宿谈一谈遇到这三个问题时,他是如何解决的?
技术人的灵魂 3 问,阿里工程师如何解答?
|
机器学习/深度学习 安全 Java
如何成为一个很厉害的工程师
如何成为一个很厉害的工程师
2248 1
|
SQL 安全 项目管理
这是一篇工程师对产品经理的吐槽
优秀的产品负责人拥有塑造产品愿景的天赋,但如果负责人在产品的初始构想阶段就没能与工程师有效沟通,结果只会浪费时间、机会和人才,这样下去最后可能会毁掉一个项目。
|
前端开发
技术人的灵魂3问,阿里工程师如何解答?
阿里妹导读:在业务团队做事的工程师摸爬滚打了一段时间后,一定会有所疑问。团队同学在最初的一段时间都提出这样的疑惑:如何在业务中发现有技术价值的问题?发现问题后如何思考和发起再到解决?最后的技术结果跟业务结果如何衔接?很多时候我们听别人说“思考是不够的/要多思考”,其实都是在说这几点。
9542 0
下一篇
无影云桌面