安服面试 --- 01

1、常用渗透工具

burp、nmap、sqlmap、蚁剑、御剑、冰蝎、cobalt strike等

2、渗透测试中,拿到目标公司站点,接下来应该怎么做?

(1)信息收集:收集目标公司的相关信息。包括域名、ip地址、子域名、开放端口等。可使用Whois、Nmap等进行信息收集

(2)漏洞扫描:使用漏洞扫描工具,对目标站点进行扫描,如Nessus、OpenVAS等,对目标站点进行扫描,以发现可能存在的漏洞和安全弱点

(3)漏洞利用:根据扫描结果,选择合适的漏洞进行利用。如已知漏洞、弱密码、未授权访问方式等

(4)提权和权限维持:进入目标系统,尝试提升权限以获取更高的访问权限。同时为长期控制目标系统,可能会在系统中留下后们或持久性访问工具

(5)数据收集和分析:在目标系统中收集有价值的信息,如明娜数据、配置文件等。对数据进行分析,获取更多信息和潜在攻击目标

(6)清理和报告:完成渗透测试。清理所有痕迹,确保不留下可追踪的证据。撰写详细报告,包括测试的目的和方法,发现的漏洞和建议的修复措施

3、查看linux的计划任务

(1)crontab:使用crontab -l可列出当前用户的计划任务。如果要查看其他用户的计划任务,可使用 --- crontab -l -u 用户名

(2)ls:计划任务配置文件通常存储在/etc/cron.d/目录下,可用 --- ls /etc/cron.d/ --- 进行查看

(3)cat:cat  文件名 --- 查看指定计划任务的配置文件内容。例:查看名为“example”的计划任务配置文件 --- cat /etc/cron.d/example

4、如何绕过waf

(1)编码和混淆:使用编码和混淆技术可以修改恶意请求的特征,使其绕过WAF的检测。例:对请求参数进行URL编码、base64编码或unicode编码,混淆恶意代码

(2)分割请求:将恶意请求分隔成多个小请求,绕过waf对请求大小和复杂性的限制,通过使用http分块传输编码或分段请求来实现

(3)绕过过滤规则:WAF通常使用规则来检测和阻止恶意请求。了解WAF使用的规则语法和规则集,可构造绕过规则的请求。如:使用特殊字符、大小写变换、绕过关键字

(4)http方法欺骗:waf通常对常见的http方法(如GET、POST)进行检测和过滤,使用不常见的HTTP方法(如OPTIONS、TARCE)可能绕过WAF检测

5、Nmap的默认扫描方式

Nmap(网络映射器)是开源网络扫描工具,广泛用于安全评估和网络发现。Nmap支持多种扫描方式,默认扫描方式为“syn扫描” --- 也称为半开放式扫描

在默认syn扫描中,Nmao发送tcp syn包(同步包)到目标主机的指定端口,进行端口扫描。如果目标逐级响应了一个SYN/ACK包(同步/确认包),表示该端口处于打开状态。如果目标主机响应了一个RST包(复位包),表示该端口为关闭状态。通过分析主机对SYN包的响应,Nmap可分析哪些端口是开放的,哪些是关闭的。

syn扫描是一种常见切有效的端口扫描方式,具有快速和地侵入性的特点。由于现代防火墙和入侵检测系统(IDS)出现,可能被检测到并阻止。一些情况下,Nmap默认扫描过程中会自动切换到“Connect(全连接)扫描”或“ACK扫描”等其他扫描方式,以提高成功率

6、说一下CSRF和SSRF的区别

CSRF(跨站请求伪造)和SSRF(服务器端请求伪造)是两种不同的攻击类型。

区别:
(1)CSRF
<1> CSRF是利用受信任用户的身份,通过伪造请求来执行未经授权的操作的攻击方式。

<2> 通过诱使用户点击恶意链接或访问恶意网站来触发CSRF攻击

<3> 攻击者利用已认证用户的浏览器的会话来执行一些操作,如更改密码,发送恶意请求,请求会在用户不知情的情况下发送到目标网站

<4> 防御CSRF攻击主要包括使用CSRF令牌、检查referer头和使用验证码等措施

(2)SSRF
<1> SSRF是攻击者通过欺骗服务器发起伪造的请求,使服务器在攻击者控制的目标上发送请求。

<2> 攻击者通常会构造特殊的请求,以让服务器访问内部资源、绕过防火墙或发起进一步的攻击

<3> SSRF攻击通常利用服务器对内部或外部资源的访问功能来实现,如文件读取、数据库访问、API调用等

<4> 防御SSRF攻击可以采用白名单过滤、限制网络访问、验证目标URL等措施

7、利用XSS取得的效果

XSS是一种常见的网络攻击,利用网页的应用程序对用户输入的不正确处理。攻击者通过注入恶意脚本代码到web页面中,使得该脚本代码在用户的浏览器中执行,可能窃取用户信息、劫持用户会话、操控页面内容等

XSS攻击造成可能的效果包括:窃取用户信息和凭据、篡改页面内容、重定向用户搭配恶意网站、执行恶意操作(如转账操作)、劫持用户会话、传播恶意代码等

8、如何进行资产搜集?

(1)公开信息收集:通过搜索引擎、社交媒体、公开数据等方式,搜集目标组织的公开信息,如网站、域名信息、社交媒体账户等

(2)网络扫描:使用网络扫描工具(如Nmap、OpenVAS等),扫描目标网络,获取主机、端口、服务等信息。这可以报考对IP地址范围的扫描、发现网络拓扑、识别开放的端口和服务等

(3)WHDIS查询:通过WHOIS查询工具,查询域名的注册信息,获得域名的拥有者信息、IP地址等

(4)DNS枚举:使用工具如Dig、NSlookup等,进行DNS枚举,获取目标域名机器子域名(如子域名、域传送等)的信息

(5)员工和供应商信息:通哥目标组织的员工和供应商,可以获取到一些相关的信息,如电子邮件地址、联系方式等

(6)社会工程学:社会工程技术可以通过与目标组织的人员进行交流,获取一些有价值的信息,包括电话调查、钓鱼攻击。访问目标场所等

(7)开源情报(OSINT)收集:通哥开源情报收集工具和技术,搜索和收集与目标有关的公开信息,如泄露数据、网页抓取、互联网公开数据等

9、说一下XSS的绕过方式

(1)字符编码绕过:使用不同的字符编码或特殊自读来绕过输入过滤和转义机制,以引入恶意脚本代码。例:unicode编码、HTML实体编码、URL编码等进行混淆

(2)标签和属性绕过:攻击者使用浏览器容错机制和解析算法,通哥构建HTML标签和属性来绕过过滤和转义机制。例:属性值中插入恶意代码。使用少见的标签和属性名称等

(3)事件处理绕过:攻击者可以利用js时间处理机制的特性,将恶意代码嵌入到HTML时间属性(如onlinck、onmouseover等)中,通过出发特定时间来执行恶意操作

(4)嵌套标签和注释绕过:攻击者可以尝试将恶意代码嵌入到其他标签或注释中,通哥浏览器解析和渲染的不一致性来绕过过滤机制

(5)数据库和上下文绕过:攻击者可以利用上下文环境的不同,例:在js字符串中进行注入,在CSS样式或js正则表达式中进行注入等。不同上下文,过滤和转义规则会有所不同

(6)组合攻击:利用多个绕过技巧和漏洞,增加成功绕过防御措施的机会。例:利用多次编码、混合使用不同类型的绕过方式等

10、你对log4j有什么理解?

(1)日志记录:log4j允许开发者在应用程序中记录各种类型的日志信息,包括调试信息,错误信息、警告和信息性消息等。有助于在应用程序部署和运行时跟踪问题、诊断错误和进行性能分析

(2)级别和优先级:log4j支持不同的级别,如TRACE、INFO、WARN、ERROR和FATAL。通过使用不同级别,可控制哪些日志消息将被记录,以及记录的详细程度。

(3)配置灵活性:log4j的配置文件允许开发者定义日志的输出方式、位置和格式。开发者可以配置输出到不同目标,也可自定义日志格式,添加时间戳和其他上下文信息

(4)日志过滤:log4j允许开发者设置日志过滤器来筛选和处理特定类型的日志消息。过滤器可根据不同的条件,如日志级别、日志来源等,来决定是否记录消息或将其传递到下一个处理器

(5)异步日志记录:log4j可与其他java框架和工具整和,如spring、hibernate等。可在整个应用生命周期中利用log4j来记录和管理日志

11、log4j的支持最低版本和使用条件

logt4j支持的最低版本是java 7

使用条件:在项目的构建路径中包含log4j的库文件(JAR文件)。需进行配置和编码,定义日志输出的格式、级别和目标,可通过log4j的配置文件进行这些设置,配置文件通常以log4j2.xml或log4j2.properties命名

12、sqlmap中,-v参数代表什么?

-v代表“Verbosity”,即详细程度或冗余级别。通哥调整该参数的值,可控制sqlmap输出的详细程度

-v 0:最低冗余级别,输出必要信息,简介输出
-v 1:默认级别,输出一般信息(包括sql语句,http请求和响应等)
-v 2:更详细级别,输出更多调试信息和详细报告
-v 3:最高冗余级别,输出非常详细的调试信息,包括细节、注入点和攻击测试等

13、了解springboot的漏洞吗?

springboot是一个开源的java框架,是基于spring的应用程序,由于是开源的,所以也存在一些安全漏洞
(1)依赖漏洞:由于springboot应用程序依赖大量的第三方库和组件,某些依赖可能存在已知漏洞。

(2)配置问题:springboot的配置文件(如applcation.properties或application.yml)可能包含敏感信息,如:数据库密码,API密钥等

(3)远程代码执行(RCE):应用程序未正确验证和过滤用户输入,将其用于代码动态执行代码或命令,可能存在远程代码执行漏洞。攻击者利用这种漏洞执行恶意代码,从而获取权限或控制应用程序

(4)跨站脚本攻击(XSS):攻击者可通过注入恶意脚本劫持用户会话,窃取用户信息或执行其他恶意操作

(5)跨站请求伪造(CSRF):应用程序未实施适当的CSRF保护措施,可能存在跨站请求伪造漏洞。攻击者通过伪造请求来执行未经授权的操作,如更改用户密码、执行敏感操作等

(6)敏感信息泄露:日志记录,错误消息、堆栈跟踪和调试输出,泄露敏感信息,如用户名、密码、电话号码等

(7)不安全的身份认证和授权:应用程序的身份认证和授权机制实施不当,可能存在未经授权的访问或特权提升问题。

14、绕过waf的姿势

(1)基于IP封锁
<1> http请求头封锁IP,使用burp插件fake-ip进行绕过
<2> 基于TCP封锁IP,使用IP代理池切换真实IP

(2)基于规则问题
<1> 基于waf返回结果:替换关键字:大小写、/**/替换空格、替换语句
<2> 代理模式:垃圾数据等高并发流量,导致设备切换bypass
<3> IPS模式:分片问题:巨大的Content-length导致设备绕过,解码较弱

(3)基于解析差异
<1> 业务特性绕过:某些业务中,一些字符呗替换为空,利用这个可进行绕过waf:'an\d''='会变成'and''=',导致waf绕过
<2> 特殊字符绕过
<3> Mutilpart变量覆盖绕过

(4)其他特性绕过
Mysql特性使用/!%0a/绕过
通过编码饶过
使用截断字符
重复变量
参数解析差异
针对域名的保护
对Content-Type不同理解
超大数据包
Post不同解析方式
异常数据包

15、linux日志存储在哪个目录下

linux系统中,日志文件通常存储在/var/log目录下。不同日志文件在/var/log目录下会有不同的子目录来进行分类存放。

/var/log/message:系统和内核日志
/var/log/auth.log:身份验证和安全相关日志
/var/log/dmesg:内核环缓冲区的日志
/var/log/apache2:Apache Web服务器的日志
/var/log/mysql:MYSQL数据库服务器的日志

16、如何进行权限维持

(1)后门程序:攻击者可在系统上安装后门程序,用于保持访问权限并在需要时重新进入系统

(2)计划任务或定时任务:攻击者通过在系统上创建计划任务或懂事任务,定期执行恶意脚本或程序,确保其持久访问权限

(3)修改系统配置:攻击者通过修改系统配置文件或注册表项,确保恶意程序在系统启动时自动运行

(4)隐藏文件或进程,使其难以被检测或移除

(5)Rootkit:Rootkit是一种恶意软件,通过修改操作系统或内核的行为,隐藏攻击者的存在和活动

17、永恒之蓝

永恒之蓝(EternalBlue)是利用windows操作系统漏洞的攻击技术,由美国国家安全局研发,在2017被Shadow Brokers组织泄露,从而被利用。

永恒之蓝利用了windows操作系统中的漏洞(CVE-2017-0144),该漏洞存在于windows的SMB协议中实现,允许攻击者通过恶意代码远程执行任意命令。攻击者可以利用该漏洞远程入侵受影响的Windows系统,甚至在没有用户交互的情况下自动传播和感染其他系统

18、防止XSS的方法

前端:
用户输入特殊字符过滤转义为html实体
用户输出编码

后端:
实体化编码
函数过滤
限制字符长度

19、web常用加密算法

单向散列加密:MD5、SHA、MAC

对称加密:AEC、DES

非对称加密:RSA、RSA2

20、XSS的作用?

获取cookie
获取管理员ip
钓鱼攻击
前端js挖矿
键盘记录
屏幕截屏

21、缓冲区溢出原理和防御

原理:
写入缓冲区的数据量超过缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞

防御:
基于操作系统防御
缓冲区边界检查
安全编程

22、了解过websocket吗?

websocket是一种在单个TCP连接上进行全双工通信的协议,最大的特点是服务器可以主动向客户推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。

23、什么是虚拟机逃逸?

利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的

24、php、python、java反序列化具体函数名以及利用技巧

PHP:
unserialize():PHP中最常用的反序列化函数,将序列化的字符串转换为对象或数组。
利用技巧:使用安全的反序列化库(如symfony/serializer)来处理反序列化操作

python:
pickle.loads():python标准库中的函数,用于反序列化使用pickle模块序列化的对象
利用技巧:对反序列化过程进行配置和限制,使用pickle.Unpickler的find_class方法限制反序列化可加载的类

java:
ObjectInputStream.readObject():java中最常用的反序列化函数,从输入流中读取并反序列化对象
利用技巧:使用白名单或黑名单:利用白名单黑名单,限制反序列化操作接收的类
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值