为什么会存在漏洞发布时间:2021/6/24 16:00:01 阅读次数:

  

为什么会存在漏洞

用官方一点的话来讲:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。


常见的安全漏洞

代码注入。包括SQL注入在内的广义攻击,它取决于插入代码并由应用程序执行。

会话固定。这是一种会话攻击,通过该漏洞攻击者可以劫持一个有效的用户会话。会话固定攻击可以在受害者的浏览器上修改一个已经建立好的会话,因此,在用户登录前可以进行恶意攻击。

路径访问,或者“目录访问”。该漏洞旨在访问储存在Web根文件外的文件或者目录。

弱密码,字符少、数字长度短以及缺少特殊符号。这种密码相对容易破解。

硬编码加密密钥,提供一种虚假的安全感。一些人认为在存储之前将硬编码密码分散可以有助于保护信息免受恶意用户攻击。但是许多这种分散是可逆的过程。


漏洞利用

1.如果一个缺陷不能被利用来干“原本”不能干的事(安全相关的),那么就不能被称为安全漏洞,所以安全漏洞必然和漏洞利用紧密联系在一起。

2.漏洞利用的视角有:

3.数据视角:访问本来不可访问的数据,包括读和写。**这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据可被人写)。**

4.权限视角:**主要为权限绕过或权限提升**。通常权限提升都是为了获得期望的数据操作能力。

5.可用性视角:**获得对系统某些服务的控制权限**,这可能导致某些重要服务被攻击者停止而导致拒绝服务攻击。

6.认证绕过:通常利用认证系统的漏洞而不用受权就能进入系统。通常认证绕过都是为权限提升或直接的数据访问服务的。

7.代码执行角度:主要是让程序将输入的内容作为代码来执行,从而获得远程系统的访问权限或本地系统的更高权限。**这个角度是SQL注入、内存指针游戏类漏洞(缓冲区溢出、格式串、整形溢出等等)等的主要驱动。**这个角度通常为绕过系统认证、权限提升、数据读取作准备的。



那么作为二进制方面的 应该从哪些地方来入手这些安全漏洞

1、测试;

(1)、熟悉输入输出;

(2)、根据需要编写测试程序;

(3)、输入输出各种特殊情况测试,特殊字符、长串;

(4)、安全需求需要检测的一些条件测试;

2、反汇编分析;

(1)、阅读理解反汇编代码;

(2)、安全需求检测的代码分析;

(3)、调用接口代码分析;

(4)、sub esp,xxx 代码分析缓冲;

(5)、strcpy、strcat、*printf、free、strncpy等调用分析;

(6)、输入输出检测;

3、跟踪调试;

(1)、异常的拦截分析;

(2)、一些字符串的流向,读写断点;