信息安全工程师面试题 (3)
报名入口来源:中国教育在线 2022-06-02
1. 介绍一下自认为有趣的挖洞经历
挖洞也有分很多种类型,一种是以渗透、一种是以找漏洞为主,如果是前者会想各种办法获取权限继而获取想要的的东西完成渗透目标,这类跟HW类似,目标各种漏洞不算,要有Shell,服务器权限才给分,这才是最接近实战渗透,跟某部门有合作的话也是属于这种打击网络犯罪获得权限、传销数据、组织架构,服务器权限、等......
如果是以挖洞为主,还需要测试每个点的细节,有完整流程,不能遗漏掉任何一个点,这是一个工作责任。
- 你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案?
SQL注入、密码组合,前者防护分为几种,CDN -> Web -> 数据库 -> 主机,设置最小权限来应对。 密码组合根据个人习惯
这类问题大幅度官是想了解哪块技术你用的多,掌握的程度如何。
- php/java反序列化漏洞的原理?解决方案?
php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象变成可以传输的字符串,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了。
O:7:"chybeta":1:{s:4:"test";s:3:"123";}
这里的O代表存储的是对象(object),假如你给serialize()传入的是一个数组,那它会变成字母a。7表示对象的名称有7个字符。"chybeta"表示对象的名称。1表示有一个值。{s:4:"test";s:3:"123";}中,s表示字符串,4表示该字符串的长度,"test"为字符串的名称,之后的类似。 当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。
JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。 Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。
- 如果一台服务器被入侵后,你会如何做应急响应?
1.准备相关的工具,查后门等工具
2.初步判断事件类型,事件等级。
3.抑制范围,隔离使爱害面不继续扩大
4.查找原因,封堵攻击源。
5.业务恢复正常水平.
6.总结,报告,并修复、监控