某某志蓝队初级一面分享
所面试的公司:某某志
薪资待遇:待定
所在城市:河北
面试职位:蓝队初级
面试过程:我感觉面试官的语速有点点快,就像两个字读成一个字的那种,在加上我耳朵不太好,在面试的过程中,有很多次让面试官重新说下问题。。。然后。。。哎,懂的都懂我就不说了
面试官的问题:
第1个问题(自我介绍)
-
hr:先自我介绍一下
-
I:面试官你好,我叫xxx,来自xxxxxx是一名大二在校生,学的专业是计算机网络技术,在校期间我参加过python程序设计实验室,编写过简单的python爬虫脚本(如爬取豆瓣数据之类的)。
-
专业技能的话,我熟悉常见的web漏洞和渗透测试工具的使用,然后我利用所学的专业技能,在漏洞盒子上提交过一些漏洞。
-
我个人比较认真负责,喜欢和志同道合的人研究技术,每天都会锻炼,去预防职业疾病。
-
最后,综上,我认为我的校园学习,我所掌握的能力,以及我做过的项目。我能够胜任这个渗透测试工程师(xxx)的岗位。
-
我的自我介绍完毕。
第2个问题(SQL注入:单引号被过滤怎么绕)
-
hr:你对蓝队的哪些知识点比较熟悉
-
I:安全设备,流量分析之类的
-
hr:SQL注入的单引号被过滤了怎么绕
-
I:xxx(我当时没反应过来,就说了反引号和编码,下面问AI的)
-
用双重单引号代替单引号。比如,将"O’Connor"替换为"O’'Connor"。
-
用反斜杠来转义单引号。比如,将 "O’Connor" 替换为 "O’Connor"。
-
用十六进制编码的字符来代替单引号。比如,将"O’Connor"替换为"O\x27Connor"。
-
用 URL 编码的字符来代替单引号或其他特殊字符。比如,将 “O’Connor” 替换为 “O%27Connor”。
-
用宽字节,比如,将"O’Connor"替换为"O%df’Connor"。
-
用双引号或反引号来代替单引号,比如将"O’Connor"替换为"O"Connor"或"O`Connor`"。
-
用逗号代替单引号,比如将"O’Connor"替换为"O,Connor"。
-
在 SQL 语句中使用内置函数来完成字符转义。例如,使用 REPLACE() 函数替换输入字符串中的单引号。比如:
-
SELECT * FROM users WHERE name = REPLACE('O\'Connor', '\'', '\'\'')
第2.1个问题(SQL注入:用跨库注入的前提条件)
-
hr:用跨库注入的前提条件是什么(我不知道他说的是不是反弹注入,后面他问的一些问题,我都被问懵了)
-
I:能用堆叠注入(我当时说堆叠的)
-
----
-
AI:目标系统存在安全漏洞,例如 SQL 注入漏洞。
-
目标系统具有访问其他数据库的权限。这可能是因为误配置或设置了过宽松的权限。
-
攻击者已经获取了目标系统的访问凭证(例如用户名和密码),或者可以通过其他方式访问目标系统(例如通过外部网络或其他计算机)。
-
目标系统中存在与其他数据库进行交互的代码或配置,例如触发器、存储过程或链接服务器。
第2.2个问题(SQL注入:注入到一个数据库之后,把这个数据库的分[数据]拿完了,怎么去获取更多的分[数据])
-
hr:注入到一个数据库之后,把这个数据库的分[数据]拿完了,怎么去获取更多的分[数据] (差不多这个意思吧)
-
I:xxx(我当时真不知道怎么说)
-
----
-
AI:探测目标数据库服务器:你可以使用端口扫描工具来扫描目标数据库服务器,获取其他数据库实例的信息。
-
扫描其他数据库:一旦你获取了其他数据库的信息,你可以使用漏洞扫描工具扫描这些数据库,尝试找到进一步的漏洞。
-
使用类似于信息泄露的工具:可以使用历史数据泄露工具 (例如 Shodan、Censys、ZoomEye等),尝试寻找数据库或应用程序的公共配置,这些配置可能不安全,可能会导致信息泄露。
-
使用社交工程或钓鱼攻击:你可以使用社交工程技巧来诱骗目标用户提供其凭证信息,然后使用这些信息来进一步访问系统。
第2.3个问题(SQL:写webshell要满足什么条件)
-
hr:SQL注入写webshell要满足什么条件
-
I:要知道绝对路径(他当时说还有呢,然后我后面说的不太清楚)
-
----
-
AI:目标系统存在SQL注入漏洞,攻击者可以通过此漏洞向数据库发送恶意语句。
-
目标系统使用的语句执行用户拥有足够的权限,在目标系统上创建文件或目录。例如,如果攻击者想要在目标系统上创建一个webshell文件,那么执行SQL语句的用户需要有创建文件的权限。
-
攻击者需要知道在目标系统上写入webshell的文件路径,并构造合适的SQL语句和webshell脚本来将webshell写入该路径。攻击者还需要知道目标服务器的操作系统和文件系统类型,以编写适当的webshell。
第2.4个问题(SQL注入:写了一个webshell,那这个shell是什么权限)
-
hr:SQL注入注进去之后,你写了一个webshell进去,比如连接菜刀之后,那这个shell是什么权限
-
I:系统权限(我当时是说系统的,因为他这夺命三连问,直接把我问懵了,就是那种你在想怎么回答这个问题的时候,他直接换一个问题问,完全不给你喘气的时间)
-
----
-
AI:如果连接的是管理员帐户,攻击者可以完全访问服务器,并对其中的所有文件、应用程序和配置进行操作。具有管理员权限的帐户可以在服务器上创建、修改和删除账户,并安装或删除软件,并进行几乎任何其他管理任务。
-
在其他情况下,如果连接的是低权限帐户,则攻击者的权限将受到限制。攻击者将只能访问他们有权访问的文件,无法安装或启动新的应用程序或服务,并且在系统的某些区域中无法进行操作。
-
例如,如果攻击者连接菜刀的账户没有Windows服务器上的管理员权限,则攻击者不能在系统上使用菜刀执行敏感操作。但是,如果攻击者寻找提权漏洞并提高了权限,则菜刀连接的帐户的权限也会相应提高。
-
总之,使用菜刀连接webshell将提供攻击者进行操作的远程接口。攻击者的权限取决于与服务器建立连接的远程帐户的权限以及攻击者是否能够提升其权限。因此,最重要的是采取必要的措施来预防SQL注入,以确保数据库和应用程序的安全,例如使用参数化查询、输入验证、最小化用户权限以及定期审计和强化服务器。
第2.5个问题(SQL注入:怎么维权&免杀)
-
hr:SQL注入,注进去之后,怎么维权
-
I:写木马
-
hr:那怎么写木马
-
I:CS或者MSF
-
hr:CS的木马要免杀,那免杀怎么做
-
I:通过常量定义,通过函数定义强行分割,(在CS的课中,可以加一些东西,比如图像,光标之类的,我当时没说出来,说webshell免杀去了)
-
----
-
AI:模块化代码:将程序分割为多个小模块,每个模块都有独特的代码、不同的加密方式,并且实现的功能单一,让杀毒软件不易检测出它是恶意的软件。
-
加密变形:使用加密技术来变形代码,使杀毒软件无法轻松检测其签名。例如,小写字母变成大写字母,添加空格和注释,删除功能无关的命令等。
-
隐藏进程:通过启用低优先级或隐藏自身进程,使杀毒软件无法检测到CS的运行和执行。
-
动态调用API:使用动态 API 调用技术可以绕过杀毒软件的检测。攻击者可以使用反射 DLL 注入技术,通过动态调用关键 API 来绕过安全软件的检查。
-
使用自定义加密算法:使用独特的加密算法可以防止杀毒软件识别CS,这种方法通常需要使用本地加载器等技术来启动。
-
使用虚拟机:使用虚拟机模拟另一台电脑运行CS,使杀毒软件无法检测和分析恶意代码。
第3个问题(代码审计:流程&针对这个Springboot框架要怎么渗透)
-
hr:代码审计对于java的框架熟悉吗
-
I:知道一点
-
hr:java最常见的Springboot框架,怎么审计
-
I:就去找一些敏感文件和可能存在漏洞的关键函数什么的,
-
比如说:很多人不注意的那个install文件,安装完成后不删除,会进行二次安装,还有一些sql注入的关键词:select、$_GET、$_POST、gbk啥的
-
文件上传的关键词,$_FILES,csrf:token、reffer头、命令执行:shell_exec、system 文件包含:include、文件下载:file_get_contents、fopen、xss:echo、var_dump
-
使用工具+人工方式进行挖掘
-
hr:针对这个Springboot框架要怎么渗透
-
I:xxx(真不知道怎么说)
-
----
-
AI:了解Web应用程序的架构:了解Spring Boot应用程序的组件和架构非常重要。您可以使用工具来分析Spring Boot应用程序,找出其中的实体,以及Web应用程序如何访问数据库、处理输入和输出等。这将使您有更好的开始,也可以帮助您更好地了解攻击者如何开始攻击。
-
查找未经身份验证的访问页面:Spring Boot Web应用程序可能会因为某些原因而在没有身份验证或未进行安全测试的情况下暴露某些页面。您应该使用Burp Suite等代理工具扫描应用程序的目录,查找未经身份验证的页面。
-
SQL注入攻击:Spring Boot应用程序通常连接到数据库。通过注入恶意SQL代码,攻击者可以访问和执行未经许可的操作。您可以使用工具,例如SQLMap或Postman,尝试执行SQL注入攻击。
-
XSS攻击:利用跨站脚本漏洞(XSS)可以将恶意代码注入到Web应用程序的页面中,并盗取用户信息或执行其他恶意操作。您可以使用XSS攻击工具,例如XSStrike或BeEF框架,来测试Spring Boot应用程序。
-
文件上传漏洞:攻击者可以通过上传恶意代码或文件来执行攻击。您可以通过上传一个恶意的JSP文件或其他文件类型来测试Spring Boot应用程序的文件上传功能。
-
密码攻击:尝试使用常用的用户密码来对Spring Boot应用程序进行攻击,例如使用弱密码字典或使用爆破工具,例如Burp Suite的Intruder,来尝试多个密码组合。
第4个问题(流量分析:怎么判断[流量包]里面是否存在恶意的攻击行为)
-
hr:蓝队的哪些知识点比较熟悉
-
I:安全设备,流量分析,误报之类的
-
hr:哪方面比较熟悉
-
I:xxx
-
hr:那说下流量包吧,从一段流量包里面去分析,怎么去分析到恶意的流量(差不多这个意思吧,就是在流量包里怎么找恶意流量)
-
I:xxx
-
hr:怎么判断[流量包]里面是否存在恶意的攻击行为
-
I:xxx
-
hr:有没有存在一些恶意的攻击行为,怎么判断
-
I:xxx
-
----
-
AI:判断流量包中是否存在恶意的攻击行为通常需要进行以下步骤:
-
1. 对流量包进行分析:使用流量分析工具,例如Wireshark、TCPdump、Dumpcap等,对流量包进行分析,以下是分析流量包时需要关注的一些方面:
-
- 协议:关注流量包中的协议类型,尤其是可能受到攻击的协议,如HTTP、HTTPS、DNS、SMTP等。
-
- 交互内容:查看流量包中交互发送和接收的内容,包括请求、响应、头部信息、Cookie 等。
-
- 时间戳:查看流量包中的时间戳,注意导出的时候准确的匹配时区。
-
- 端口:查看流量包中所使用的端口及开放的端口,以确定数据的流向以及攻击目标可能存在的漏洞。
-
2. 分析流量包中的恶意行为:通过分析流量包,可以发现可能的恶意行为,以下是一些可能的恶意行为:
-
- SQL注入攻击:在流量包中查找可能的SQL注入攻击指示,如SQL查询字符串、错误消息和响应时间等。
-
- XSS攻击:在流量包中检测未经验证的数据、Cookie等,尤其是含有JavaScript代码而未进行编码的请求头部或请求参数。
-
- DOS/DDOS攻击:查看流量包中大量的重复请求、异常的服务器响应、服务器负载等,来判断是否存在可能的攻击。
-
- 远程文件包含:分析目标主机是否存在远程文件包含漏洞,查找流量包中的远程文件资源地址、文件内容等指示物。
-
3. 进一步确认攻击行为:除以上的分析外,还需要进行以下确认:
-
- 确认攻击目标: 确认流量包中攻击的目标,这有助于获取攻击行为的背景信息,了解攻击背后的含义。
-
- 验证攻击类型:通过验证已知的攻击类型,如exploit、DoS、malware、phishing等,以确定攻击类型。
-
- 确认受影响范围:评估攻击的影响范围,确定是否存在更广泛的威胁,如可能的侦听、间谍软件、后门等。
-
总之,要判断流量包中是否存在恶意攻击行为,需要对流量包进行全面的分析和确认。了解各种攻击类型、恶意漏洞及攻击行为,以及使用各种分析工具,是进行有效流量检测的关键。
第5个问题(应急响应:对于一个免杀了的webshell,它上传了上来,它把时间戳改了一下,这个时候要怎么找出来)
-
hr:应急响应知道吧
-
I:嗯
-
hr:对于一个免杀了的webshell,它上传了上来,它把时间戳改了一下,这个时候要怎么找出来
-
I:xxx
-
hr:怎么把这个webshell找出来
-
I:xxx
-
hr:怎么定位
-
I:xxx
-
hr:怎么清除
-
I:xxx
-
hr:日志怎么看
-
I:xxx
-
----
-
AI:对于一个免杀了的WebShell,它上传并修改了时间戳,可以通过以下步骤来找出:
-
1. 根据文件名或上传时间定位到WebShell所在目录,找到WebShell的文件名。
-
2. 利用Web服务器记录的访问日志,查找是否有该WebShell文件被访问的记录,记录中包含的日期时间信息可能对应着WebShell的实际上传时间。
-
3. 对比Web服务器日志中的日期时间信息和文件的实际修改时间,查看是否存在不一致的情况,如果存在,可能就是被修改的时间戳。
-
4. 可以使用一些工具,如 FileTime,来查看 WebShell 的文件属性,用以判断时间戳是否被篡改。
-
5. 分析Web服务器中的访问记录,查找其他可疑的访问行为或文件操作记录,例如文件上传、下载、修改等行为,结合其他安全信息来确定是否存在WebShell恶意行为的证据。
-
需要注意的是,对于具有良好掩盖性的WebShell,往往需要在深入分析其行为的基础上才能发现其存在。除时间戳修改外,它还可能采取其他方法来隐蔽自己,比如使用伪装文件名、加密脚本内容、隐藏代码等,因此在进行WebShell检测时需要采取综合分析、多方面确认的方法。
第6个问题(溯源)
-
hr:溯源会不会
-
I:xxx(说到一半又换问题了)
第7个问题(Apache的正常Shiro和恶意的Shiro有什么区别)
-
hr:Apache的正常Shiro和恶意的Shiro有什么区别
-
I:xxx
-
----
-
AI:Apache Shiro 是一个用于认证、授权和加密的 Java 安全框架,支持访问控制、会话管理、密码策略等安全功能。
-
正常的 Shiro 框架没有恶意程序的行为,它具有以下特点:
-
1. 支持多种认证方式:包括基于LDAP、OAuth、数据库、自定义认证等多种认证方式。
-
2. 支持多种权限管理方式:包括基于角色、基于权限、自定义权限等多种权限管理方式。
-
3. 支持会话管理:可以创建、管理和销毁用户会话,并提供会话监听器功能,以支持相关事件的处理。
-
4. 支持密码策略:可以灵活配置密码策略,包括密码加密、密码过期时间、密码重置等。
-
而恶意的 Shiro 框架可能具有以下特点:
-
1. 具有远程代码执行功能:恶意 Shiro 可以通过漏洞或后门来实现远程代码执行,从而获取系统权限。
-
2. 可能存在注入攻击:通过构造特定的输入数据,恶意 Shiro 可能具有 SQL 注入、XPath 注入等攻击行为。
-
3. 可能替换掉原版 Shiro:攻击者可能通过恶意修改、替换掉原版的 Shiro,而用户往往无法察觉这种行为。
-
4. 可能存在恶意配置:恶意 Shiro 可以通过恶意配置文件、恶意脚本等来实现后门、植入攻击代码等行为。
-
因此,在使用 Apache Shiro 安全框架时,需要确保使用的是官方版本,并及时更新和修复任何已知的漏洞,同时加强对相关配置文件和代码的安全控制。
-
hr:在流量上有什么区别
-
I:xxx
-
----
-
AI:正常的 Apache Shiro 的流量通常是正常的认证、授权和加密的网络流量,通常包括以下内容:
-
1. 用户认证请求:通常是用户提交的用户名和密码等认证信息。
-
2. 权限验证请求:通常是应用程序或者用户提交的请求参数,请求 Shiro 验证用户是否有相应的权限访问该资源。
-
3. 会话管理请求:通常是应用程序对 Shiro 管理的用户会话的操作请求,如创建会话、访问会话内容、销毁会话等。
-
而恶意的 Apache Shiro 的流量可能会具有一些异常或可疑的特征,例如:
-
1. 异常的请求流量:攻击者可能采用非正常手段构造的请求流量,如大量尝试常用用户名和密码、HTTP 非标准端口的访问请求等。
-
2. 异常的响应流量:攻击者可能针对 Shiro 漏洞,构造异常响应流量来触发后门或植入攻击代码。
-
3. 非法请求或操纵:攻击者可能在用户界面或 Web 页面中注入恶意代码,从而窃取用户账户信息,修改用户密码等。
-
为了捕获和区分这些异常或可疑的流量,网络安全专家一般会使用流量分析技术,如深度包检测或者机器学习技术,来对流量数据进行分类、比对和过滤,并发现其中的恶意 Shiro 流量,从而及时采取相应的应对措施。同时,定期更新和修复相关安全漏洞,强化账户密码等安全策略,也有助于避免恶意 Shiro 的流量攻击。
面试难度:我感觉它是拿中和高的题目来问我的(我看了下,根据28分配,7.5和2.5)
面试感受:怎么说呢,我第一次的时候,感觉是可以的,但是,因为一些问题,没有跟他说让我想一下,就随便说了说,然后hr可能觉得我学的不扎实。
第二次面,我感觉这难度是直线上升(可能差不多满人了),反正最好是一次性过。
给大家的建议:会的要扎实,基于会的再去扩展
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
免费领取安全学习资料包!
渗透工具
技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线