面试的一些问题(安全岗位)

这些是今年3-9月份各个大厂问我的一些问题,这里给出了我的一些解决方案,包括阿里,腾讯,字节,美团问道的一些问题,当然有一些问题我没有给出答案(涉及到自己的一些技巧),也有一些常规问题没有罗列,比如自我介绍,项目经验,还有根据你的简历问的东西我就没有罗列出来,以及一些非常简单的问题我也没有罗列出来,比如sqlmap --os-shell原理是啥,ok

1.shiro反序列化
shiro550(命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值)
比较重要的是AES加密的密钥,一般的shiro利用工具就是找到其默认的AES的key,然后反序列化执行我们的恶意payload即可
一些问题
ysoserial是什么?
ysoserial工具集成了大量java反序列化的payload,包括fastjson,spring,weblogic等
Java Runtime为什么要bash编码?
管道符、输入输出重定向,只有在bash环境下才能用
shiro550与shiro721的区别是什么?
加密的方式不同了,721用的是AES-128-CBC加密
利用失败的原因可能有哪些?
没有找到真的gadget,亦或者是经过oracle padding加密后的payload过长导致打不进去
 
2.fastjson反序列化
特征:一些json的字符串,直接用payload请求dnslog
fastjson就是将json格式转换为类、字符串等,或者将类、字符串等数据转换成json数据,类似序列化的操作
fastjson版本 <= 1.2.24(jndi注入和JSON.parseObject()函数的反序列化)
一些问题
如何理解反序列化?
我们是没办法直接转储对象,只能将对象的所有属性一一访问,保存,取出时一一还原,序列化与反序列化就是为了解决这个问题
rmi和ldap是什么?
rmi相当于是解决java客服端与服务端远程调用对象的一个方法,ldap就是身份认证认证
jndi和jdbc的区别和联系?
两者都是API,是连接数据库的标准
jdbc:数据库可能改用别的产品,如改用DB2或者Oracle,引发JDBC驱动程序包和类名需要修改
jndi:没有上述jdbc的问题,基本交给交给J2EE容器来配置和管理
 
3.cobalt strike域前置
作用:隐蔽自己的远控
原理:比如在我们的通信层外部,域名叫做a.com,通信层内部,域名叫做b.com,然后b.com才是我们真正的域名,因为检测的话要么放行,要么禁止,检测内部层,成本太高,所以放行
操作:cs设置一个监听器(host改为谷歌和端口号443) -->然后部署gae(谷歌的云平台)代码,参数的内容包括cs的ip或域名 --> 更改我们的cs配置文件    
 
4.内存马
tomcat内存马(注册filter,打shiro,fastjson)
过程:
客户端发起请求 -> 经过监听器listener -> 经过filter(起编码,敏感过滤的作用) -> 到达servlet(web内容的呈现,渲染,交互) -> 最后response我们的客户端
当我们注册了filter,我们可以对请求和响应消息进行预修改,当然,我们也可以注册多个filter,从而形成filter链
所以,我们现在需要注册恶意的filter,载入jvm内存即可
如何查杀:
因为此类内存马是通过filter注册的,所以查看filter节点的数据,检查是否存在我们不认识的,或者没有在web.xml中配置的filter,或者filterClass为空的Filter
当然亦或者可以把jar包dump下来反编译看源码,哈哈哈哈,但是最主要的还是看我们web容器是怎么被突破的,缩小入口点嘛
spring内存马(注册controllers,打spring mvc框架的)
 
5.tp5rce分析
比如我们的paylaod:?s=index/\think\app/invokefunction?function=call_user_func&vars[0]=system&vars[1]=whoami
跟据代码的信息可以得知通过?s的方式传入路由信息 -> 控制器的名字中存在 \或者以\开头,会被会被当作一个类,可以利用命名空间,实例化任意类 ->
执行的实例化类的方法,然后方法里面对应的参数通过get请求传入 -> tp的路由规则是 ?s=模块/控制器名/操作名
总的操作流程:
找到控制器->导致可以用命名空间的方式来调用任意类的任意方法->进而通过对应的内部函数通过get请求传入拿下shell
 
6.内网kerberos认证,金银票据,约束委派,权限维持,bypassuac,dll注入\劫持
kerberos认证
一些基本概念:
KDC负责管理票据、认证票据、分发票据,但是KDC不是一个独立的服务,它由以下服务组成:
Authentication Service: 为client生成TGT的服务
Ticket Granting Service: 为client生成某个服务的ticket
1.客户端向kerberos请求访问服务端的权限,然后Kerberos在account database查看我们客服端的账户是否是白名单,是的话将tgt返回给客户端
ps:生成的tgt用的是krbtgt用户的hash,如果我们拿到了krbtgt的hash,就可以伪造黄金票据了
2.客户端拿到tgt后,再次像kerberos申请访问服务端的请求,kerberos通过检测tgt确认无误后,将访问客户端的ticket给了客户端
3.然后访问成功
白银票据:
当我们知道了server的hash,就可以跳过认证的第一步和第二步,直接请求成功
黄金票据:
当我们知道了krbtgt的hash,就可以伪造第一步的tgt,进而拿到黄金票据
两者的防御方法:
1.及时更新krbtgt用户的密码
2.开启pac认证
 
基于资源的约束委派:一个专门将用户加入域环境里,当我们拿下这个这个账号时,相当于拿下了其他被它加入的域机器
约束委派:域用户账号分为3类,服务账号(数据库,sql账号),主机账号(system权限),普通账号(域账号),A机器委派给服务账号B,当我们拿下服务账号B,即相当于拿下机器A
 
权限维持
1.利用sc自启动
2.shift5次后门后门,添加隐藏用户,金银票据
3.利用acl添加普通用户的完全访问权限            ps:acl = 访问控制列表
 
bypass uac
uac的原理:因为有一些系统程序,直接获取管理员权限,同时不弹出uac的窗口,这类程序统称为白名单程序,这些程序拥有autoElevate属性的值为True
 
dll注入\劫持
dll注入:将我们的shellcode注入某一个进程支持的dll中,修改或拓展程序行为
dll劫持:a.exe运行需要b.dll,我们将恶意的c.dll放置在比b.dll更优先级执行的位置,也是通常白+黑常用的方式
 
7.护网前的信息收集
(1)常规的资产收集,包括子域名,端口,c段,旁站等,对于医院可以搜寻公众号,学校可以搜索qq群
(2)邮件搜寻,脉脉在职员工定向钓鱼(vx,手机号),公司组织架构,电话,物理地址(打不动可以考虑物理渗透)
(3)服务器的提供商,各类云,各类waf,vpn的设备是什么,现在供应链是新的方向了
 
8.cors与csrf
cors
同源策略:协议,https/http,端口,域名(子域名)三者保持一致,如果不一致将会无法请求数据
因为有了同源策略,导致跨域访问技术的提出,而我们的cors就是我们的跨域技术之一,此外还有我们的jsonp也是跨域技术之一
我们的cors也分为简单请求和非简单请求,区别在与请求方法(get,post,head),请求头包含的字段(Accept-Language,Content-Type)
隐患:cors处理跨域请求的时候,并没有先验证,而是先处理了请求,打破了传统同源策略下不能跨域读写资源
攻击场景:
(1)正常的网页被嵌入了到攻击者控制页面的跨域请求,从而劫持用户的会话,访问内网的敏感资源
(2)绕过http-only
csrf
用当前用户的权限去执行当前用户能做的事情,比如后台管理员新增用户,修改密码,当然也能getshell,看你的表单怎么构造以及当前用户的权限是否能够新增修改模板代码
防御方法:
(1)增加referer头
(2)增加token的验证,以及各种二次验证,比如验证码,二次密码
(3)尽量使用post方法
 
9.xss与sql注入
xss:尖括号绕过,引号绕过
sql注入:逗号如何绕过,盲注除了sleep还有什么什么函数,笛卡尔注入原理是什么,宽字节绕过的原理是什么
 
10.redis
windows与redis常见拿shell的方法
windows:1.绝对路径写webshell    2.或者用msf的脚本打,原理就是将exp写入宿主机,然后执行反弹shell,相当于我们的mshta上线cs一样
linux:1.写计划任务    2.公私钥    3.绝对路径
redis主从复制:
主从模式是一个redis实例作为主机,其他实例都是备份机,主机和从机的数据是相同的,从机只负责读,主机只负责写。而我们的主从攻击的要求需要redis的版本在4-5,是因为此版本的redis可以编译出我们恶意的so文件
 
11.csp
csp是内容安全策略,能够阻止部分XSS攻击和数据注入攻击,为什么能阻止,因为开启csp后,当前服务器只信任当前域名,不信任任何url,不加载任何资源,相当于白名单机制。
如何绕过csp呢?
请求包/返回包看看csp字段,那些白名单网站是否能利用
 
 
 
 
 
 
posted @ 2021-09-12 19:21  z珠穆朗玛鑫  阅读(406)  评论(0编辑  收藏  举报