今年暑期渗透测试面试经验分享

2024-08-22 02:44

本文主要是介绍今年暑期渗透测试面试经验分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

吉祥知识星球icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247485367&idx=1&sn=837891059c360ad60db7e9ac980a3321&chksm=c0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd

《网安面试指南》icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect

《Java代码审计》

《Web安全》

《应急响应》

《护网资料库》

面试岗位:渗透测试

先简单说一下这个岗位,现在的渗透分的很细了,像深信服这种厂,一般分为一般渗透,也就是会在各个省会城市干渗透的活(对网站的渗透),还有一种基本也是渗透叫红队,这个深信服应该是在他们深蓝实验室,这种红队的要求就比较高了,一般要会打点、代码审计、内网渗透等;但是一般应届生面试的渗透测试岗,要求就没那么高了,更多的会问你一些漏洞的原理、工具的使用、做过哪些案例或者实验等,所以只要你漏洞原理这些基础知识比较扎实、再打过一些靶场一般问题不大。

一二面技术问题

1、问:做个自我介绍吧。

答:这个就不用写什么了,就是说一些自己和网络安全搭边的一些事啦,相信咋喜欢网络安全的小伙伴都会有一堆说不完的话,我就说了3分钟左右,大佬们可以自己把握时间。

2、反序列化漏洞的原理是什么以及怎么利用的

解:很巧的是前一天我刚好看了一下反序列化。还顺便复习了一下serialize和unserialize的发音。我就把学院里教的反序列化给他老人家讲了一遍,从对象序列化到字符串格式反序列化,再到靶场的做法。。。。。。当然靶场被我说成了某站点。。然后穿插着unserialize的英文。面试官也是有点一愣一愣的。最后说他听懂了。然后他问到weblogic的反序列化有研究过吗,我只能如实说并没有的,但已经排上了日程,下周就会去做这部分的研究,但是我说我修复weblogic反序列化贼厉害啊,每个版本的反序列化我从运维的角度上都会修复,然后这个问题就没继续深入了

3、如何看待web前端安全,简述前端安全存在的风险有哪些,并用具体例子说明

解:我理解的web前端指的是客户端,也可以说是浏览器端。前端安全是一个很大的分支,如cookie安全,flash安全,dom渲染(dom型xss),字符集,跨站(csrf),钓鱼,信任等。Cookie安全方面,如果过分相信cookie且没有进行其他处理,那么可能造成csrf。字符集可能造成宽字节问题,如逃逸特殊符号

信任方面,实际上安全的攻防都是以信任为基础,如同源策略,实际利用中有:1. A站防护很高,但同服务器同文件系统下的B站因安全问题被入侵,那么如果文件权限没有配置好,则A站也会被成功拿下,因A与B过分信任,没有做好分离。2. A网站嵌入和B网站的javascript脚本,方式是以<script>标签引用,实际也等于建立了信任关系,那么如果此脚本被黑客动了手脚,那么A站也会被危及。另外,我认为社会工程学也应说一下,通过google hacking,SNS垂直搜索(人人网,Facebook等)和其他各种信息收集方式,这使得攻防的过程变成了一个斗智斗勇的过程,在成功的入侵中,社工可能扮演着非常重要的角色。

总结起来主要分为三大类:XSS/CSRF/界面操作劫持Xss:现在xss漏洞被人认为是没有什么危害的漏洞,包括大部分src已经不收反射型xss漏洞了(利用困难,chrome等浏览器也会拦截掉),但谈论前端安全,xss就是个很大的问题,如果是一个半年一年不更新的站点,盗取管理员cookie当然概率很低。所以我把xss漏洞单独拿出来说,是因为他必须结合相应的场景。在对html,js脚本使用不规范(html有容错机制,即忘记写一个标签或者一个符号,也能正常运行),或者没有做好过滤的情况下,可能造成xss漏洞的产生,如留言板页面,提交js代码,没有过滤或者转义特殊字符,导致提交成功,数据被存入了数据库csrf :跨站点的请求,且请求是伪造的。A用户在登录A站的情况下登录了危险网站B,B站中有构造的请求A站的恶意代码,那么A用户在不知情的情况下就操作了网站A。在防御方面:

1.验证referer。2.使用验证码。3.加入token。4.限制session生命周期。但弊端也很明显。有些请求可能就不带referer,那么没有办法验证。验证码会降低用户体验。Token随机性如果不够好可能会被猜解,或者token本身因某种方式泄露,此外,在大型的服务中需要一台token生成及校验的专用服务器,需要更改所有表单添加的字段,时间和复杂度也是个重要的问题。当然限制session生命周期也是缓解的方式,不能有效解决csrf。某位大佬提出了下面这样的方法:原理与token差不多:当表单提交时,用JavaScript在本域添加一个临时的Cookie字段,并将过期时间设为1秒之后在提交,服务端校验有这个字段即放行,没有则认为是CSRF攻击。

界面操作劫持:点击劫持、拖放劫持、触屏劫持。点击大体是在用户可见可操作的界面上,覆盖一个不可见的框,即某控件之上覆盖一个iframe,且该iframe透明度为0,例子就比较多了...大多不可描述的网站中,点击某个按钮或者选项会调至另一个网站..这是个非常可怕的操作触屏劫持也很可怕,试想一下,用户想查询某个超市离自己多远,点击查询后,实际上进行了一次网银交易操作...移动设备上的web网页设计大体理论与PC上相通,又说到了某些不可描述的网站,用户在浏览的过程中,点击后并没有跳转至想去的页面,而是弹出或者直接跳转至另一个站点。

4、列举一些渗透测试的常用工具,并简述其应用场景,和使用案例

解:

Burpsuite:针对请求进行抓包改包等操作,可以对前端参数进行进一步测试,如测试逻辑漏洞,爆破弱口令,寻找页面传参点等

Sqlmap:可以检测或者注入后台数据库为关系型数据库的站点,还可以访问文件系统,使用-file-read “xxx.txt”来读取目标目录下xxx.txt文件,更可以使用-os-cmd执行操作系统命令,-os-shell使用交互的操作系统shell,功能十分强大,其丰富的tamper也为绕过一些waf提供了很大的帮助。当然大部分情况下还是要手动判断waf规则的。

御剑:很优秀的目标扫描工具,在一次真实的场景中,我通过御剑扫描得到了对方的数据库文件,看到了数据库ip,port及账号口令,直接连接数据库后,所有我想要的已经呈现在我面前了。

Mimikatz:抓取当前系统中所有用户的明文密码。在提权的时候可能会使用Owasp Zap/AWVS:漏洞扫描工具,我个人是不怎么喜欢用漏扫的,在不摸清楚对方情况的条件上直接使用漏扫,很可能导致ip被ban,而且参加过一些众测的项目,很多白帽子使用漏扫对目标展开疯狂的扫描,导致目标连正常访问都有问题,有点反感这些操作。但漏扫工具在一定程度上也会让我们大概了解目标的信息,如路径,可能存在的漏洞等,以免我们遗漏了某些点

Namp/masscan:目标开放服务扫描,弱点端口扫描,操作系统辨识,属于信息收集。如-p指定端口,-sV识别服务版本,-O识别操作系统,-sS(不建立三次握手的隐式扫描),sT(TCP扫描,信息相对准确),对于禁ping的站点可以用-Pn等,另外nmap强大的脚本也可以提供多种方式,如dos(可能造成拒绝服务),exploit(检测安全漏洞)。相比较来说,masscan在扫描上速度更快,效果更好一些(个人认为),所以可以两者配合使用,masscan快速扫出端口,nmap通过这些端口再去识别服务。

5、sql注入如何getshell解:比如mysql的select into dumpfile,比如sqlserver的xp_cmdshell之类的。这个问题面试官没有深入问,但是可以作为我面试结束后的一个深入了解方向

三面问题/hr面

接着就是三面了,放轻松点和hr聊一下人生啊,规划啊什么的。。。

面试的感受

体验总体来说,大部分面试官技术都不错,在面试过程中让我学到了很多。也有部分面试官让我真的很心烦,我说啥他也听不懂,问的问题也莫名其妙。

给大家的建议

关于建议主要是以下几条

1、不要慌,自信;之所以写在第一条是因为这个是最重要的,我第一次面试和最后一次面试相差很多。第一次就像一个铁憨憨。

2、面试是双向的,公司在选择你的同时,你也在选择公司,少点套路,多点真诚。

3、自己不会的也可以写到简历里,前提是,你能在面试前把你写的东西都搞懂,至少能说得出来。

4、信息收集,去了解你要面试的公司。他们主要做什么,对安全的需求是啥样的,你能想到的都了解一下。

5、学院的靶场和课程必须搞懂,不要偷工减料。

6、面试官问你,你还有什么问题要问我的时候,不要耍你的小聪明。

推荐阅读:

学了这篇面试经,轻松收割网络安全的offer

护网主防资料库、护网设备讲解、护网初中高级别面试

Java代码审计零基础入门到整套代码审计

Web安全:靶场、渗透工具、信息收集、输入输出漏洞、业务逻辑漏洞

【护网必备技能】应急响应知识库

这篇关于今年暑期渗透测试面试经验分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095017

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

Python中处理NaN值的技巧分享

《Python中处理NaN值的技巧分享》在数据科学和数据分析领域,NaN(NotaNumber)是一个常见的概念,它表示一个缺失或未定义的数值,在Python中,尤其是在使用pandas库处理数据时,... 目录NaN 值的来源和影响使用 pandas 的 isna()和 isnull()函数直接比较 Na

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分