常见漏洞总结(面试必问)

SQL注入

SQL注入就是一种通过操作输入来修改后台SQL语句达到代码执行进行攻击目的的技术。

SQL注入产生原理

  1. 对用户输入的参数没有进行严格过滤(如过滤单双引号 尖括号等),就被带到数据库执行,造成了SQL注入
  2. 使用了字符串拼接的方式构造SQL语句

文件上传

什么是文件上传漏洞?

凡是存在文件上传的地方均有可能存在文件上传漏洞,关于上传文件操作的时候对方代码写的是否完整、是否安全,一旦疏忽了某个地方可能会造成文件上传漏洞。

文件上传的原理

网站Web应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个webshell到一个Web可访问的目录上,并将恶意文件传递给如PHP解释器去执行,之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作。还有一部分是攻击者通过Web服务器的解析漏洞来突破Web应用程序的防护

文件上传漏洞有哪些需要注意的地方?

对文件上传类型进行区分,是属于编辑器文件上传,还是属于第三方应用,还是会员中心。要确保文件上传是什么类型,就用什么类型方法对它进行后期的测试。

XSS:

原理:

XSS(Cross Site Script),跨站脚本攻击。它指的是恶意攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和JS脚本)注入到网页之中,当用户浏览该页之时,嵌入其中Web里面的恶意代码会被执行,从而对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击(利用站点内信任用户)。分为:反射性,存储型,dom型

1.反射型XSS

反射型XSS又称非持久型XSS,这种攻击方式往往具有一次性。

攻击方式:攻击者通过电子邮件等方式将包含XSS代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有XSS代码的数据发送给目标用户的浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。

2.存储型XSS

存储型XSS又称持久型XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。

攻击方式:这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入帖子的内容中。随着帖子被服务器保存下来,恶意脚本也永久地被存放在服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。

如果我们能够谨慎对待不明链接,那么反射型XSS攻击将没有多大作为,而存储型XSS则不同,由于它注入在一些我们信任的页面,因此无论我们多么小心都难免会受到攻击。

3.DOM型XSS

DOm全称Document Object Model,使用DOM可以使程序和脚本能够动态访问和更新文档内容、结构及样式。

DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

HTML的标签都是节点,而这些节点组成了DOM的整体结构——节点树。通过HTML DOM,树中所有节点均可通过JavaScript进行访问。所有HTML(节点)均可被修改,也可以创建或删除节点。

总结一下反射型XSS的基本攻击流程:

攻击者->发现存在反射XSS的URL->构造XSS代码->根据情况对XSS代码进行编码、缩短等特殊处理->发送给受害人->受害人打开URL,执行XSS代码->攻击得到相应信息(cookie、IP、浏览器信息等)。

防御方法

1.输入过滤:对用户提交的信息进行有效验证、过滤有害的输入(<、>、'、#等敏感字符)2.输出编码:使用htmlspecialchars()函数将预定义的字符转换为HTML实体、

3.使用特定的类库,如微软开发的Anti-XSS,提供了大量的编码函数用于处理用户的输入。

4.HttpOnly:如果cookie中设置了HttpOnly属性,那么通过JS脚本将无法读取用户的cookie信息。

CSRF(用户请求伪造)

原理:

  1. 黑客通过一些手段获取用户数据包,将数据包做一些修改(非法…),放在黑客的个人服务器上,用户在该网站上授权登录时,引诱用户访问黑客服务器,从而导致触发黑客修改的数据包。造成了csrf攻击。

防御:

设置随机token,token是检测数据包唯一性的,一般出现token就不会有csrf漏洞。

SSRF (服务器端请求伪造)

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

漏洞形成原理:

很多网站提供了从其他的服务器上获取数据的功能。通过指定的URL,网站可以从其他地方获取图片、下载文件、读取文件内容等。SSRF的实质就是利用存在缺陷的Web站点作为代理攻击远程和本地的服务器。

SSRF漏洞形成的原因大都是由于服务端提供了从其他服务器获取数据的功能但没有对目标地址做过滤与限制。攻击者可以利用改漏洞获取内部系统的一些信息(因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内网系统)。

漏洞的危害:

1.对外网、服务器所在内网、本地进行端口扫描

2.向内部任意主机的任意端口发送payload来攻击内网服务

3.DOS攻击(请求大文件,始终保持连接Keep-Alive Always)

4.攻击内网的web应用,如直接SQL注入、XSS攻击等

5.利用file、gopher、dict协议读取本地文件、执行命令等

6.可以无视网站CDN

内网服务防御相对外网服务来说一般会较弱,甚至部分内网服务为了运维方便并没有对内网的访问设置权限验证,所以存在SSRF时,通常会造成较大的危害。

XXE

XXE漏洞全称XML External Entity Injection,即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。

反序列化

Java 序列化

是指把 Java 对象转换为字节序列的过程,便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。

java反序列化

是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。

代码执行

代码执行漏洞:靠执行脚本代码调用操作系统命令

函数:

1. eval(PHP代码)

payload:

<? eval('phpinfo();');?>

2. assert(PHP代码)

payload:

<? assert('phpinfo();');?>

    1. 代码执行漏洞造成的原理是由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。造成代码执行相关的函数分别是:eval、assert函数
    2. 暴露服务器信息
    3. 木马植入
    4. 敏感文件暴露
    5. 可能升级为命令执行

命令执行

命名执行漏洞:直接调用操作系统命令

函数:

1. system:执行一个外部的应用程序并显示输出的结果

2. exec:执行一个外部的应用程序

3. shell_exec:执行shell命令并返回输出的结果的字符串

4. passthru:执行一个UNIX系统命令并显示原始的输出

5. popen()

6. proc_popen()

原理:

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

成因:

1.代码层过滤不严格:

2.调用第三方组件存在的代码执行漏洞:

逻辑漏洞

    1. 在提交订单的时候抓取数据包或者直接修改前端代码,然后对订单的金额任意修改。
    2. 黑客只需要抓取Response数据包便知道验证码是多少或直接绕过
    3. 有些业务的接口,因为缺少了对用户的登陆凭证的较验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操作
    4. 有些关键性的接口因为没有做验证或者其它预防机制,容易遭到枚举攻击
    5. Cookie的效验值过于简单。有些web对于cookie的生成过于单一或者简单,导致黑客可以对cookie的效验值进行一个枚举
    6. 单纯读取内存值数据来当作用户凭证
    7. 用户修改密码时,邮箱中会收到一个含有auth的链接,在有效期内用户点击链接,即可进入重置密码环节。而大部分网站对于auth的生成都是采用rand()函数,那么这里就存在一个问题了,Windows环境下rand()最大值为32768,所以这个auth的值是可以被枚举的

未授权访问

原理

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

目录遍历

原理:

目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。

利用:

攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。 这可能包括应用程序代码和数据,后端系统的登录信息以及敏感的操作系统文件。

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一块金子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值