面试经验分享 | 驻场安全服务工程师面试

所面试的公司:某安全厂商
所在城市:浙江宁波
面试职位:驻场安全服务工程师

面试官的问题:

1、信息收集如何处理子域名爆破的泛解析问题?

泛域名解析是:*.域名解析到同一IP。
域名解析是:子域名.域名解析到同一IP。

解决方式:IP黑名单,首先访问一个随机的并不存在的域,通过返回的结果判断是否存在泛解析,确定存在泛解析后,不断的生成随机域名并发送请求,将每次返回的IP和TTL记录下来,直到大部分的IP出现次数都大于两次,则IP黑名单收集完成。
而后使用域名字典进行爆破,爆破过程中根据IP黑名单进行过滤,同时比较TTL,在泛解析记录中TTL是相同的,如果TTL不相同,则不是泛解析记录。

2、访问百度,都涉及到哪些协议?

HTTP:当你在浏览器中输入百度的网址时,浏览器会发送HTTP请求到百度的服务器,请求获取网页内容。HTTP协议定义了客户端和服务器之间的通信规则和格式。
DNS:在发送HTTP请求之前,浏览器需要将百度的域名(URL)转换为服务器的IP地址。这个转换过程通过DNS协议实现。浏览器会向DNS服务器发送请求,以查询与百度域名对应的IP地址。
TCP/IP:TCP/IP协议是互联网通信的基础协议。在打开百度网站时,HTTP请求会被封装在TCP/IP协议中进行传输。TCP协议提供可靠的连接,确保数据的完整性和顺序。IP协议则负责将数据包传输到目标服务器的IP地址。
SSL/TLS:当使用HTTPS访问百度网站时,通信采用SSL/TLS协议进行加密,确保数据传输的安全性。SSL/TLS协议使用公钥加密和私钥解密的技术,防止数据在传输过程中被窃听或篡改。

3、sqlmap —os-shell的原理?

使用此条命令必须获取到目标站点的绝对路径,且当前数据库权限必须是dba,sa。工作原理是使用 into outfile()函数去写一个可以进行文件上传的 php文件,再根据这个文件写了一个木马,通过木马进行命令执行。
其条件必须具备以下几点:
1,已知目标站点的绝对路径
2,已知目标站点的脚本语言
3,当前数据库权限必须是dba,sa权限

4、过滤逗号的SQL注入如何绕过?

在使用盲注的时候,需要使用到substr(),mid(),limit。这些都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决:

select substr(database() from 1 for 1);select mid(database() from 1 for 1);

使用join:

union select 1,2 #等价于union select from (select 1)a join (select 2)b

使用like:

select ascii(mid(user(),1,1))=80 #等价于select user() like ‘r%’

其他绕过方式:

select from table1 where id =1 and exists (select from table2 where ord(substring(username from 1 for 1)=97);
127’ UNION SELECT FROM ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d JOIN (SELECT 5)e)#
select case when substring((select password from mysql.user where user=’root’) from 1 for 1)=’e’ then sleep(5) else 0 end #
substring((select password from mysql.user where user=’root’) from -1)=’e’

5、防止XSS攻击,从前端后端两个角度?

前端:用户输入特殊字符过滤转义为html实体用户输出编码
后端:实体化编码函数过滤限制字符长度

6、samesite了解过吗,怎么去防御CSRF
Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击 和用户追踪(第三方恶意获取cookie),限制第三方 Cookie,从而减少安全风险。

SameSite属性可以设置三个值:Strict、Lax、None

Strict:严格,完全禁止第三方获取cookie,跨站点时,任何情况下都不会发送cookie;只有当前网页的 URL 与请求目标一致,才会带上 Cookie。这个规则过于严格,可能造成非常不好的用户体验。比如,当前网页有一个 GitHub 链接,用户点击跳转就不会带有 GitHub 的 Cookie,跳转过去总是未登陆状态。
Set-Cookie: CookieName=CookieValue; SameSite=Strict;

Lax:防范跨站,大多数情况下禁止获取cookie,除非导航到目标网址的GET请求(链接、预加载、GET表单);设置了Strict或Lax以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。
SameSite属性的默认SameSite=Lax 【该操作适用于2019年2月4号谷歌发布Chrome 80稳定版之后的版本】
Set-Cookie: CookieName=CookieValue; SameSite=Lax;

None:没有限制。

7、Linux常见后门

这个真的挺多的...

一句话添加用户和密码
添加普通用户:
创建一个用户名guest,密码123456的普通用户

useradd -p openssl passwd -1 -salt 'salt' 123456 guestuseradd -p 方法   是用来存放可执行的系统命令,”$()”也可以存放命令执行语句useradd -p “$(openssl passwd -1 123456)” guest

添加root用户:
创建一个用户名guest,密码123456的root用户

useradd -p openssl passwd -1 -salt 'salt' 123456 guest -o -u 0 -g root -G root -s /bin/bash -d /home/test

SUID Shell
Suid shell是一种可用于以拥有者权限运行的shell。
配合普通用户权限使用

cp /bin/bash /tmp/shellchmod u+s /tmp/shell

使用guest用户登录就可疑获取root权限。

备注:bash2针对suid做了一些防护措施,需要使用-p参数来获取一个root shell。另外,普通用户执行这个SUID shell时,一定要使用全路径。

ssh公私钥免密登录
在客户端上生成一对公私钥,然后把公钥放到服务器上(~/.ssh/authorized_keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录了。
客户端:

ssh-keygen -t rsa

进入/root/.ssh/文件夹,查看文件夹的内容:
其中 id_rsa为私钥,id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制到服务器。将id_rsa.pub的内容追加到/root/.ssh/authorized_keys内,配置完成。

软连接
在sshd服务配置运行PAM认证的前提下,PAM配置文件中控制标志为sufficient时只要pam_rootok模块检测uid为0即root权限即可成功认证登陆。通过软连接的方式,实质上PAM认证是通过软连接的文件名 /tmp/su 在/etc/pam.d/目录下寻找对应的PAM配置文件(如: /etc/pam.d/su),任意密码登陆的核心是auth sufficient pam_rootok.so,所以只要PAM配置文件中包含此配置即可SSH任意密码登陆,除了su中之外还有chsh、chfn同样可以。
在目标服务器上执行一句话后门:

ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888

执行完之后,任何一台机器ssh root@IP -p 8888,输入任意密码,成功登录。

SSH wrapper
首先启动的是/usr/sbin/sshd,脚本执行到getpeername这里的时候,正则匹配会失败,于是执行下一句,启动/usr/bin/sshd,这是原始sshd。原始的sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作。这个子进程,没有什么检验,而是直接执行系统默认的位置的/usr/sbin/sshd,这样子控制权又回到脚本了。此时子进程标准输入输出已被重定向到套接字,getpeername能真的获取到客户端的TCP源端口,如果是19526就执行sh给个shell
简单点就是从sshd fork出一个子进程,输入输出重定向到套接字,并对连过来的客户端端口进行了判断。

strace后门
通过命令替换动态跟踪系统调用和数据,可以用来记录用户ssh、su、sudo的操作。

crontab反弹shell
crontab命令用于设置周期性被执行的指令。新建shell脚本,利用脚本进行反弹。

openssh后门
利用openssh后门,设置SSH后门密码及root密码记录位置,隐蔽性较强,不易被发现。

rookit后门
Mafix是一款常用的轻量应用级别Rootkits,是通过伪造ssh协议漏洞实现远程登陆的特点是配置简单并可以自定义验证密码和端口号。
利用方法:安装完成后,使用ssh 用户@IP -P 配置的端口,即可远程登录。

8、shiro相关漏洞

shiro550
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的Cookie,在服务端对rememberMe的Cookie值先base64解码然后AES解密再反序列化(AES是硬编码的),就导致了反序列化RCE漏洞。

shiro721
Apache Shiro RememberMe Cookie默认通过AES-128-CBC模式加密,这种加密方式容易受到Padding Oracle Attack(Oracle填充攻击),利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造 RememberMe Cookie 值来实现反序列化漏洞攻击。

先使用合法账号进行登录勾选remember Me然后使用bp抓包,
然后获取到cookie,将remember me字段复制下利用工具生成恶意的rememberme。

550和721区别
550不需要登录,721需要登录获取正确的cookie,550是因为aes密钥是硬编码,所以直接可以构造payload,而721是利用Oracle填充攻击,将正确的cookie作为攻击前缀从而生成攻击payload。
利用漏洞时550只需要一个url就可以利用工具实现检测和攻击,721需输入url,提供一个有效的rememberMe Cookie。

面试结果:一面通过,等待二面中。

面试难度:适中。

给大家的建议:一定要多多拓展知识的宽度。

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java基础】Java中运算符的优先级

1. Java中运算符的优先级 在Java中,运算符的优先级决定了表达式中各个部分的操作顺序。当> 表达式包含多个运算符时,优先级高的运算符会先执行。下面是Java中运算符的优> 先级(从高到低): 1. 后缀运算符 () 方法…

docker-创建自定义网络,并给容器分配静态ip

文章目录 前言docker-创建自定义网络,并给容器分配静态ip1. 创建自定义 Docker 网络2. 给容器分配静态ip3. 验证 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的…

PyTorch梯度直通反传

有时我们想在层的输出端放置一个阈值函数。这可能出于多种原因。其中之一是我们想将激活总结为二进制值。这种激活的二值化在自编码器中很有用。 然而,阈值化在反向传播过程中会带来问题:阈值函数的导数为零。这种梯度的缺乏导致我们的网络无法学习任何…

运动想象 (MI) 分类学习系列 (16) :LMDA-Net

运动想象分类学习系列:基于滑动窗口的通用空间模式 0. 引言1. 主要贡献2. 提出的方法2.1 LMDA-Net架构2.2 通道注意力2.3 深度注意力3. 结果3.1 实验结果3.2 消融实验4. 总结欢迎来稿论文地址:https://www.sciencedirect.com/science/article/pii/S1053811923003609 论文题目:…

MySQL:表的增删查改

文章目录 1.Create(创建)2.Retrieve(读取、查询)2.1 SELECT 列2.2 WHERE 子句2.3 结果排序(order by)2.4 筛选分页结果(limit、offset)2.5 Update更新2.6 Delete删除2.7 去重 3.聚合函数3.1 聚合函数的基本使用3.2group by子句的使用(分组查询) 增删查改:: Create(创…

Tailwindcss 扩展默认配置来自定义颜色

背景 项目里多个Tab标签都需要设置同样的背景颜色#F1F5FF,在集成tailwindcss之前就是重复该样式,如下图: .body {background-color: #f1f5ff; }集成tailwindcss时,我们希望在class中直接设置该背景色,但是默认的tai…

docker 安装与常用指令

1. docker 安装 sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable do…

Windows11平台C++在VS2022中安装和使用Matplot++绘图库的时候出现的问题和解决方法

Matplot 是一个基于 C 的绘图库,专门用于绘制高质量的数据图表。它提供了一个简洁而强大的接口,使得用户能够轻松地创建各种类型的图表,包括线图、散点图、柱状图、饼图等。Matplot 的设计目标是提供与 MATLAB 相似的绘图体验,同时…

在编译内核时添加驱动的固件

最近调驱动时,无法正常加载引导。 使用的内核5.10 内核启动先于文件系统,内核启动时驱动无法访问固件文件,所以无法加载驱动。 有2个办法,可以解决,一是驱动编译KO模块,系统启动后,再动态加载…

Spring Boot 3 整合 SpringDoc OpenAPI 生成接口文档

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

Flutter知识点

Dart语言基础知识 Dart特性: Dart 是少数同时支持 JIT(Just In Time,即时编译)和 AOT(Ahead of Time,运行前编译)的语言之一。语言在运行之前通常都需要编译,JIT 和 AOT 则是最常见…

HCIP-HarmonyOS Device Developer 课程大纲

一:系统及应用场景介绍 1 -(3 课时) - HarmonyOS 系统介绍;HarmonyOs 定义;HarmonyOS 特征; - 统一 OS,弹性部署;硬件互助,资源共享;一次开发,多…

vue3插槽slot的使用

一&#xff0c;默认插槽 父组件页面&#xff1a;使用子组件标签 <template><div>我是父组件自己的内容</div><ComTest></ComTest> // 这里使用子组件的内容<!-- <ComTest>我要替换默认插槽的内容</ComTest> // 这里替换子组件…

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 目录 Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 一、简单介绍 二、实现原理 三、注意实现 四、简单效果预览 五、案例简单实现步骤 六、关键代码 一、简单介绍 Unit…

使用Python进行数据可视化:从基础到高级

使用Python进行数据可视化:从基础到高级 数据可视化是数据分析过程中不可或缺的一部分,通过图形化的方式展示数据,可以更直观地发现数据中的趋势和模式。Python凭借其丰富的库和强大的功能,成为数据可视化的首选编程语言。本文将介绍数据可视化的基础概念、常用的Python库…

网络安全:Web 安全 面试题.(XSS)

网络安全&#xff1a;Web 安全 面试题.&#xff08;XSS&#xff09; 网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面&#xff1a; &#xff08;1&#xff09;基础知识:包括网络基础知识、操作系统知…

超级好用的JSON格式化可视化在线工具

JSON是开发非常常用的一种报文格式&#xff0c;最常见的需求就是将JSON进行格式化&#xff0c;最好是有图形化界面显示结构关系&#xff0c;以便进行数据分析。 理想的在线JSON工具&#xff0c;应该支持快速格式化、可压缩、快捷复制、可下载导出&#xff0c;对存在语法错误的地…

Python之三大基本库——Numpy(1)

最近呢学了一些关于python的一些功能&#xff0c;为了更方便快捷高效的实现项目&#xff0c;我们要熟知python的三个基本库&#xff1a;numpy、pandas、matplotlib的功能。由于我也是入门新手&#xff0c;所以先做一些基本的总结&#xff0c;后续有进阶的话会再来更新。 一、Nu…

POI导入带有合并单元格的excel,demo实例,直接可以运行

直接可以运行 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.s…

网络与协议安全复习 - 系统安全部分

文章目录 恶意软件什么是恶意软件传播机制和载荷传播载荷 DDoS 攻击和防范 防火墙什么是防火墙防火墙类型防火墙载体 入侵检测入侵者入侵检测蜜罐技术 口令管理基于Bloom过滤器的口令检查技术 恶意软件 什么是恶意软件 恶意软件定义为&#xff1a;隐蔽植入另一段程序的程序&a…