前言:
最近跟我的一些读者交换,有一位读者的经验让我记忆粗浅:
“有一次和大学同学聚会,和几个在 BAT 的同学聊了聊技术,发现自己在守业公司这几年,齐全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距越来越大”
我持续问他,他说真正让他受打击的是这个月的一次面试。
“面的是一个大厂,面试官问了很多问题,一大半的问题我都是只知其一; 不知其二,答复上来问题也是特没底。
大略回顾了这场面试:上来先是问了网络基础知识,TCP/IP 模型、对等模型、IP 协定等等,这部分我还算筹备的充沛。第二局部开始简单了,次要是 Web 应用程序技术、平安工具 - 信息收集、浸透测试的问题,像是 SQL 注入、破绽扫描,验证码平安,业务平安问题?我之前工作上经验的少,加上本人技术储备肤浅,到这部分时我就感觉本人快凉了。面试到最初,问了的,过后曾经懵了,我只记得一个问题:你晓得怎么挖破绽吗?我。。。。“
面完后他说,感觉本人在技术上欠了很多债,最惨的是,在这之前他基本不晓得。
听了这位读者的经验,于是有了明天这篇文章。很多工作了 1 - 3 年的平安人,想够一够 3w 月薪的岗位,但在底层技术上却有很大的问题:
毕业几年,外表上用过很多技术,但都没能深刻学习,一年的工作教训,干了好几年。后果就是遇到理论问题时无从下手,最终还是走着一般工程师的路线,和高手的间隔越来越远。
都说三年是程序员的一个坎,是否降职或者进步本人的外围竞争力,这几年就非常要害。
技术倒退的这么快,从哪些方面开始学习,能力达到高级工程师程度,最初进阶到平安架构师 / 技术专家?我总结了这 8 大能力——
- 熟练掌握各种浸透测试工具并且对其原理有深刻理解(不仅限于 Burpsuite、sqlmap、appscan、AWVS、nmap、MSF,cobalt strike 等等)
- 至多把握一门开发语言,操作语言不限 C/C++、Golang、Python、Java 都可,要求至多能上手写代码
- 熟练掌握常见的攻防技术以及对相干破绽(web 或二进制)的原理有深刻的了解
- 具备丰盛的实战经验可独立实现浸透测试工作
- 能从防御者或者运维人员的角度思考攻防问题,对后浸透有深刻理解者更佳
- 对平安有浓重的趣味和较强的独立钻研能力,有良好的团队精神
- 具备浸透大型指标的教训,特地是善于内网浸透这一块的。
- 相熟常见 Windows,Linux 平安机制,具备肯定的平安开发能力以及 problem solving 能力
当然,想要深刻学习并把握这些能力,并不简略。对于如何学习,做程序员这一行什么工作强度大家都懂,然而不论工作多忙,每周也要雷打不动的抽出 10 小时用来学习,不出半年,你就能看出变动。
我这里有一份网络安全经典解析视频和滴滴、美团等大厂的面试真题,外面有很多浸透测试面试的必考点、高频点、加薪点,看看大厂的浸透测试工程师都有哪些要求,知己知彼能力百战不殆。想要的同学能够点击下方支付
【材料获取】
如果没有很好的自律性,没人领导,自觉自学大概率就是浪费时间精力,因为不仅效率低、学习没有体系,学完了也没方法保障待业
那么要怎么要能力零碎学习 而后吊打面试官呢?
上面我给大家整顿一些浸透测试 / 网络安全工程师大厂热门面试题
Web 平安
次要包含 HTTP 协定、注入破绽、XSS 破绽、SSRF 破绽、CSRF 破绽、文件解决破绽、访问控制破绽、会话治理破绽等。
[
](https://shimo.im/docs/TdpXTY6…
1.1 HTTP 协定
http 是一个简略的申请 - 响应协定,它通常运行在 TCP 之上。
它指定了客户端可能发送给服务器什么样的音讯以及失去什么样的响应。
申请和响应音讯的头以 ASCII 码模式给出;而音讯内容则具备一个相似 MIME 的格局。
学习要点:
申请办法:
- OPTIONS, PUT, DELETE, 和 TRACE 办法的基本概念
- HTTP 申请的根本办法和产生的申请后果
- HTTP 状态码的标准
- HTTP 状态码的作用
- 常见的 HTTP 状态码
- HTTP 状态码 2,3,4,5 代表的含意
- 用计算机语言获取 HTTP 状态码的办法
- GET 申请的规范格局
- POST 申请提交表单,上传文件的办法
- HEAD 申请与 GET 申请的区别
- 常见的 HTTP 响应头
- HTTP 响应头的作用
- HTTP 响应头的名称
- HTTP 响应头的格局
- URL 的基本概念
- URL 的构造
- URL 编码格局
1.2 注入破绽
1.2.1 SQL 注入
SQL 注入即是指 web 应用程序对用户输出数据的合法性没有判断或过滤不严,攻击者能够在 web 应用程序中当时定义好的查问语句的结尾上增加额定的 SQL 语句,在管理员不知情的状况下实现非法操作,以此来实现坑骗数据库服务器执行非受权的任意查问,从而进一步失去相应的数据信息。
学习要点
- SQL 注入破绽原理
- SQL 注入破绽对于数据安全的影响
- SQL 注入破绽的办法
- 常见数据库的 SQL 查问语法
- MSSQL,MYSQL,ORACLE 数据库的注入办法
- SQL 注入破绽的类型
- SQL 注入破绽修复和防备办法
- 一些 SQL 注入破绽检测工具的应用办法
1.2.2 XML 注入
XXE 破绽全称 XML External Entity Injection 即 xml 内部实体注入破绽,XXE 破绽产生在应用程序解析 XML 输出时,没有禁止内部实体的加载,导致可加载歹意内部文件,造成文件读取、命令执行、内网端口扫描、攻打内网网站、发动 dos 攻打等危害。xxe 破绽触发的点往往是能够上传 xml 文件的地位,没有对上传的 xml 文件进行过滤,导致可上传歹意 xml 文件。
学习要点
- XML 注入破绽产生的起因
- XML 注入破绽的利用形式
- 如何修复 XML 注入破绽
1.2.3 代码注入
即服务器通过 PHP 的个性(函数)去蕴含任意文件时,因为要蕴含的这个文件起源过滤不严格,从而能够去蕴含一个歹意文件,攻击者就能够近程结构一个特定的歹意文件达到攻打目标。
学习要点
- 近程文件蕴含破绽所用到的函数
- 近程文件蕴含破绽的利用形式
- 近程文件蕴含破绽代码审计办法
- 修复近程文件蕴含破绽的办法
1.2.4 命令执行
命令执行破绽是指利用有时须要调用一些执行系统命令的函数,如:system()、exec()、shell_exec()、eval()、passthru(),代码未对用户可控参数做过滤,当用户能管制这些函数中的参数时,就能够将歹意系统命令拼接到失常命令中,从而造成命令执行攻打。
学习要点
- 什么是命令注入破绽
- 命令注入破绽对系统安全产生的危害
- 脚本语言中能够执行系统命令的函数
- 第三方组件存在的代码执行破绽如 struts2,weblogic 等
- 命令注入破绽的修复办法
1.3 跨站脚本破绽(XSS)
1.3.1 存储型 XSS
攻击者当时将恶意代码上传或贮存到破绽服务器中,只有受害者浏览蕴含此恶意代码的页面就会执行恶意代码。这就意味着只有拜访了这个页面的访客,都有可能会执行这段歹意脚本,因而贮存型 XSS 的危害会更大。因为存储型 XSS 的代码存在于网页的代码中,能够说是永恒型的。
学习要点
- 存储式 XSS 破绽对平安的影响
- 存储式 XSS 破绽的特色和检测办法
- 存储式 XSS 破绽的危害
- 修复存储式 XSS 破绽的形式
- 罕用 WEB 破绽扫描工具对存储式 XSS 破绽扫描办法
1.3.2 反射型 XSS
反射型 XSS 也被称为非持久性 XSS。当用户拜访一个带有 XSS 代码的 URL 申请时,服务器端接收数据后处理,而后把带有 XSS 代码的数据发送到浏览器,浏览器解析这段带有 XSS 代码的数据后,最终造成 XSS 破绽。这个过程就像一次反射,故称为反射型 XSS 破绽。
学习要点
- 反射式 XSS 破绽与存储式 XSS 破绽的区别
- 反射式 XSS 破绽的触发模式
- 反射式 XSS 破绽利用的形式
- 反射式 XSS 破绽检测和修复办法
1.3.3DOM 型 XSS
DOM—based XSS 破绽是基于文档对象模型 Document Objeet Model,DOM) 的一种破绽。
学习要点
- DOM 式 XSS 破绽的触发模式
- DOM 式 XSS 破绽的检测办法
- DOM 式 XSS 破绽的修复办法
1.4 申请伪造破绽
1.4.1 服务器申请伪造 SSRF
SSRF(Server-Side Request Forgery: 服务器端申请伪造) 是一种由攻击者结构造成由服务端发动申请的一个安全漏洞。个别状况下,SSRF 是要指标网站的外部零碎。(因为他是从外部零碎拜访的,所有能够通过它攻打外网无法访问的外部零碎,也就是把指标网站当中间人)。
学习要点
- 什么是 SSRF 破绽
- 利用 SSRF 破绽进行端口探测的办法
- SSRF 破绽的检测办法
- SSRF 破绽的修复办法
1.4.2 跨站申请伪造 CSRF
跨站申请伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF,是一种挟制用户在以后已登录的 Web 应用程序上执行非本意的操作的攻打办法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信赖,CSRF 利用的是网站对用户网页浏览器的信赖。
学习要点
- CSRF 破绽产生的起因
- CSRF 破绽的原理
- CSRF 破绽与 XSS 破绽的区别
- CSRF 破绽的开掘和修复方
1.5 文件解决破绽
1.5.1 任意文件上传
文件上传包含了上传头像,上传相册,上传附件,增加新闻图片,自定义主题背景,新闻投稿等等,开发者因为对安全意识有余,或者编写代码时对上传文件的非法校验存在缺点,导致上传破绽的产生或 Web 容器破绽、CGI、配置不当等等
学习要点
- 任意文件上传破绽产生的起因
- 服务端语言对上传文件类型限度办法
- 任意文件上传破绽的危害
- 上传破绽的检测思路和修复办法
1.5.2 任意文件下载
许多网站凋谢下载文件性能,因为下载性能代码对下载文件类型、目录未做限度或限度不当,导致攻击者可下载服务器任意文件。
学习要点
- 什么是文件下载破绽
- 通过文件下载破绽读取服务端文件的办法
- 可能通过代码审计和测试找到文件下载破绽
- 修复文件下载破绽的办法
1.6 访问控制破绽
1.6.1 程度越权
程度越权拜访是一种“基于数据的访问控制”设计缺点引起的破绽。因为服务器端在接管到申请数据进行操作时没有判断数据的所属人 / 所属部门而导致的越权数据拜访破绽。
学习要点
- 程度越权破绽的基本概念
- 程度越权破绽的模式
- 程度越权破绽对网站平安的影响
- 程度越权破绽的测试和修复办法
1.6.2 垂直越权
垂直越权是一种“基于 URL 的访问控制”设计缺点引起的破绽,又叫做权限晋升攻打。因为后盾利用没有做权限管制,或仅仅在菜单、按钮上做了权限管制,导致歹意用户只有猜想其余治理页面的 URL 或者敏感的参数信息,就能够拜访或管制其余角色领有的数据或页面,达到权限晋升的目标。
学习要点
- 垂直越权破绽的基本概念
- 垂直越权破绽的品种和模式
- 对网站平安的影响
- 越权破绽的测试方法和修复
1.6.3 未受权拜访
未受权拜访破绽能够了解为须要平安配置或权限认证的地址、受权页面存在缺点导致其余用户能够间接拜访从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
学习要点
- 如何去开掘未受权拜访
- 未受权拜访的危害
- 未受权拜访的修复办法
1.6.4 目录遍历
目录遍历破绽原理比较简单,就是程序在实现上没有充沛过滤用户输出的../ 之类的目录跳转符,导致歹意用户能够通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符能够是../,也可是../ 的 ASCII 编码或者是 unicode 编码等。
学习要点
- 目录遍历的成因以及概率
- 如何摸索目录遍历
- 目录遍历的修复办法
1.7 会话治理破绽
1.7.1 会话劫持
例如你 Telnet 到某台主机,这就是一次 Telnet 会话;你浏览某个网站,这就是一次 HTTP 会话。而会话劫持(Session Hijack),就是联合了嗅探以及坑骗技术在内的攻打伎俩。例如,在一次失常的会话过程当中,攻击者作为第三方参加到其中,他能够在失常数据包中插入歹意数据,也能够在单方的会话当中进行监听,甚至能够是代替某一方主机接管会话。
学习要点
- 什么是会话劫持破绽
- 会话劫持破绽的危害
- Session 机制
- HttpOnly 的设置办法
- 会话劫持破绽进攻办法
1.7.2 会话固定
会话固定攻打(session fixation attack)是利用利用零碎在服务器的会话 ID 固定不变机制,借助别人用雷同的会话 ID 获取认证和受权,而后利用该会话 ID 劫持别人的会话以胜利假冒别人,造成会话固定攻打。
学习要点
- 什么是会话固定破绽
- 会话固定破绽的检测办法
- 会话固定破绽的造成的起因
- 会话固定破绽的危险
- 会话固定破绽的防备办法
高清零碎学习路线图支付
总结
只有充沛地筹备好了面试,才能够更有自信地吊打面试官,每方面的常识都是必须的,不能不足的。
【2021 热门大厂面经】