前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享:安全服务工程师面试知识点大纲

分享:安全服务工程师面试知识点大纲

作者头像
一名白帽的成长史
发布2019-10-08 15:58:13
2.9K0
发布2019-10-08 15:58:13
举报

Hello,各位小伙伴大家好,这里是你们的小编Monster

今天分享的内容是最近面试中小编自己总结的(傲娇脸)一份知识点大纲。

我是根据这一份总结来进行复习的,现在分享给大家~

Part.0

目录

目录

一、使用指南

二、SQL注入

三、XSS注入

四、CSRF攻击

五、文件上传漏洞

六、文件解析漏洞

七、文件包含漏洞

八、命令执行漏洞

九、敏感信息泄漏

十、逻辑漏洞

十一、反序列化漏洞

十二、SSRF漏洞

十三、总结

Part.1

使用指南

使用指南

本篇内容仅仅为一个方便记忆的大纲,使用时需要自己去扩充大纲中的每一个点。

例如SQL注入的注入方法,我列举了报错注入、布尔盲注、时间盲注等等。。。

报错注入就需要自己去扩充,包含updatexml、extractvalue等等。

布尔盲注是当页面不显示查询内容,只反馈对错时使用的一种注入方式。

布尔盲注可以使用的函数很多,例如可以使用length函数来判断需要查询的内容的字符长度,使用substring函数来读取字符串的每一个字符,使用ascii函数来转换为相应的ascii值,最后通过布尔运算来判断字符的ascii值。

又比如时间盲注,当页面什么都不反馈时,使用sleep函数或者benchmark函数来进行判断:

if(ascii(substr(“hello”, 1, 1))=104,sleep(5), 1)

综上,本文只是提供一个复习思路,具体内容还需要大家自己去扩充。如果需要复习,记得去看小编以前的文章(链接已附在相应位置)。

接下来正式开始吧~

Part.2

SQL注入

SQL注入

(1)定义

攻击者利用web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊意义的符号或命令。

通过将这些恶意命令拼接到正常的SQL执行语句中一并执行,达到对后台数据库系统直接下达命令的攻击方式,称为SQL注入。

(2)手段

  • 注入类型:数字型注入,字符型注入,模糊匹配
  • 注入方法:报错注入、联合查询注入、布尔盲注、时间盲注
  • sql server利用存储过程(xp_cmdshell)
  • 注入点:GET、POST、COOKIE、User-Agent、XFF、Referer等

(3)防护

  • 限制字符串输入的长度。
  • 使用预编译语句。
  • 输入过滤,检查变量的数据类型是否正确。
  • 过滤敏感字符,比如单引号、双引号。使用mysql_real_escape_string()等安全函数。
  • 最小权限原则,避免web应用直接使用root等最高权限直接连接数据库

(4)绕过

大小写绕过、编码绕过、注释符绕过、分隔与重写绕过、宽字节绕过等。

(5)二次注入

也称为存储型的注入,指攻击者将构造的恶意SQL语句成功存储到数据库中,在第二次访问时,服务器会查询数据库中已经存储的数据信息并处理,导致前面存储的恶意语句在服务器环境中被执行的一种攻击方式。

利用方式:绕过密码验证,修改用户密码

【SQL注入】SQL注入知识总结v1.0

Part.3

XSS攻击

XSS攻击

(1)定义

XSS全称Cross Site Script,跨站脚本攻击。通常指攻击者通过“HTML注入”篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击手段 。

(2)手段

分类:哪三种,区别是什么

利用:网页挂马、盗取cookie、网页钓鱼、配合CSRF等完成攻击等

挖掘:利用字符编码、黑名单绕过、注入点分析(可能发生在HTML标签中、HTML属性中、在标签中、在事件中等)

(3)防护

  • 开启HttpOnly
  • 输入输出过滤:黑名单、白名单、电话邮件等符合格式要求、输入长度限制、使用安全编码函数对特殊字符进行转义,如htmlspecialchars()

(4)同源策略

为了避免出现网站A的cookie被网站B读取,浏览器引入了同源策略。必须满足以下三个条件,才能互相读取cookie值:

  • 协议相同
  • 域名相同
  • 端口相同

【XSS漏洞】XSS漏洞相关总结v1.0

Part.4

CSRF攻击

CSRF攻击

(1)定义

指利用受害者未失效的身份认证信息(cookie、session等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下,以受害人的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)的一种攻击行为。

(2)手段

使用短链接工具、将恶意连接插入到网页中标签、结合存储型XSS进行攻击。

(3)防护

  • token机制。在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。
  • 验证码。通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。
  • 源ip、referer识别,在HTTP Header中有字段Referer,它记录了HTTP请求的来源地址。

挂载恶意代码到网页:

【CSRF】通过DVWA教你学会CSRF攻击

Part.5

文件上传漏洞

文件上传漏洞

(1)定义

大多数网站都有文件上传的接口,如果没有对上传的文件类型做严格的限制,会导致攻击者可以上传恶意文件。(例如Webshell)利用这些恶意文件,攻击者可能获取到执行服务器端命令的能力。

(2)手段

前端绕过:上传图片后缀格式的恶意文件,burp抓包后修改后缀

后端绕过:Brup抓包,修改“Content-Type”字段为为“image/jpeg”

%00截断,仅存在于php < 5.3.4的版本中,且需要关闭magic_quotes_gpc

伪造合法的文件头,如GIF89a(gif文件头),需要配合文件包含漏洞

(3)防护

  • 判断文件类型。在判断文件类型的时候,可以结合使用MIME Type,后缀检查等方式。
  • 对上传的文件类型进行白名单、黑名单校验,只允许上传可靠类型。
  • 采用随机数重命名文件,使攻击者无法猜想上传文件的访问路径。
  • 限制上传文件的大小,避免恶意脚本,防止由于内存、磁盘耗尽而造成的拒绝服务攻击。
  • 将文件上传的目录设置为不可执行。

【文件上传与解析】文件上传与解析漏洞总结v1.0

Part.6

文件解析漏洞

文件解析漏洞

(1)定义

当服务器接收到一个HTTP请求的时候,web容器(如IIS、Apache)首先会根据文件的后缀名,来决定如何去处理这个请求。文件解析漏洞,就是利用中间件漏洞去解析原本不能解析的文件。

(2)Apache解析漏洞

Apache解析顺序为从右往左遍历,直到遇到一个可以解析的后缀为止。

运维人员在配置服务器时,通过AddHandler添加了如下配置文件,只要文件名中的任何位置有.php,就会被交给php_module解析。

(3)IIS 6.0

  • 利用特殊符号“;”,“;”号的功能类似于%00截断,上传webshell.asp;.jpg
  • 目录以“xxx.asp“格式命名,该目录下的所有类型的文件都会被当作asp文件来解析执行。

(4)IIS 7.5

当IIS 7.5在Fast-CGI运行模式下时,如果服务器开启了“cgi.fix_pathinfo”功能,当访问的路径不存在时,会进行修剪,上传/webshell.jpg/.php,.php会交给php解析。

(5)Nginx解析漏洞

对于任意文件,访问时在后面添加/任意文件名.php ,便可交给php进行解析。

开启cgi.fix_pathinfo功能,该功能默认开启。

修改配置文件security.limit_extensions为空,会把所有文件都以php格式解析。

(6)防护

版本升级、关闭相应规则。对上传文件做严格过滤。

【中间件】一些中间件的相关漏洞总结v1.0

Part.7

文件包含漏洞

文件包含漏洞

(1)定义

我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程就叫做包含。

以PHP为例,常用的文件包含函数有以下四种:

include(),require(),include_once(),require_once(),可将包含的任意文件当成php文件进行解析,读取敏感文件信息。

(2)分类

本地文件包含,远程文件包含(allow_url_include、allow_url_fopen状态为ON)

(3)利用

  • 读取本地敏感文件,文件解析。
  • %00截断,%00截断需要php版本小于5.3.4,且关闭magic_quotes_gpc。
  • 如果%00不可以截断,还可以尝试?截断,服务器会认为?后面为get传参。
  • 配合文件上传执行恶意脚本、包含Apache日志文件access.log、error.log
  • PHP伪协议

(4)防护

  • 使用str_replace等方法过滤掉敏感字符
  • 配置open_basedir,防止目录遍历
  • php版本升级,防止%00截断
  • 对上传的文件进行重命名,防止被包含
  • 对于需要动态包含的文件可以设置一个白名单,不读取非白名单的文件

【文件包含】文件包含漏洞知识总结v1.0

Part.8

命令执行漏洞

命令执行漏洞

(1)定义

网页有时候需要调用一些执行系统命令的函数,如php中的system、exec等。一旦用户能够控制这些函数中的参数时,且输入没有被过滤,就能够将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

(2)手段

常见函数:system、exec、shell_exec、passthru

区别是?

(3)分隔符

  • 管道符:| ||
  • and符:& &&
  • linux系统还可以使用;符进行分隔

以上方法的区别是?

(4)防护

  • 对传入的命令进行严格过滤,检查数据类型
  • 在后台对应用的权限进行控制
  • 使用安全函数:EscapeShellCmd()函数、EscapeShellArg()函数

【命令执行】命令执行漏洞总结v1.0

Part.9

敏感信息泄漏

敏感信息泄漏

  • 默认账号未删除,导致第三方登陆
  • 后台对公开放,未做权限设置
  • debug等报错信息
  • Git泄漏(可以访问.git目录)、开发人员使用git进行版本控制,可能泄漏源码
  • SVN泄漏(可以访问.svn目录),版本控制器,可能泄漏源码
  • 目录遍历、目录穿越

Part.10

逻辑漏洞

逻辑漏洞

(1)定义

验证机制问题、会话管理问题、权限控制问题、业务逻辑问题

  • 验证机制:暴力破解、弱口令攻击、密码重置
  • 会话管理:令牌有含义、令牌可预测、令牌可获取(URL中明文传输)、令牌不失效
  • 权限控制:未授权访问、越权操作(水平越权、垂直越权)
  • 业务逻辑:支付逻辑问题、重放攻击

(2)防护

验证码设置失效时间,设置多次输入错误锁定账户,提高用户密码强度。

未授权访问:修改后台名称进行隐藏,检查权限跳转到登陆界面,设置允许访问IP地址。

越权:通过合理的会话管理机制,识别用户及用户权限

Part.11

反序列化漏洞

反序列化漏洞

(1)定义

序列化是指为了方便存储和传输,将对象的状态信息转换为可存储与传输的形式的过程。

反序列化指将可存储或传输的形式(二进制、XML、JSON)恢复为对象的过程。

反序列化漏洞是指 应用程序对于用户输入的不可信数据进行了反序列化处理,使反序列化生成了非预期的对象,而在非预期对象产生的过程中,可能产生攻击行为的一种漏洞。

(2)涉及函数

PHP:serialize、unserialize

JAVA:XMLEncoder、XMLDecoder;WriteObject、readObject

Part.12

SSRF漏洞

SSRF漏洞

(1)定义

原理:SSRF 全称服务器端请求伪造,是一种由攻击者构造形成的由服务端发起请求的安全漏洞。主要攻击目标为无法直接访问的内部系统,由此利用服务端发起攻击。

产生原因:服务端提供了从其他服务器应用获取数据的功能,但并没有对输入做限制。

(2)手段

作用:从指定URL获取网页文本内容,加载指定地址图片,文件下载等。

(3)防护

限制不能访问内网的ip,以防止对内网进行攻击

屏蔽内网返回的详细信息。

Part.13

总结

总结

经过多家面试,面试官爱问的问题大致如下:

渗透测试的基本流程、SQL注入原理、XSS攻击原理、CSRF攻击原理、各类提权方法、内网渗透、各类中间件漏洞、常见服务端口号等等。

面试时一定要把简历上写了的内容完全搞懂,简历上没写的知识点回答不上不会特别严重,但写了的知识点也答不上就会非常丢分!

Part.14

结语

以上就是今天的全部内容了~

不知不觉中已经是本公众号的第26篇文章了,感谢大家一路的陪伴与鼓励。

小编也终于入门成长为了一名新手白帽,但是安全这门技术要学的东西实在是太多了,今后也会继续和大家分享、交流。

Peace!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一名白帽的成长史 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档