前些日子写了一篇《几个常见的 Web 应用安全缺陷及样例
》东西,这两天正好有空同事希望能够做一个 IBM Rational AppScan 的实践和 Web 应用安全方面的交流,本来之前对这方面关注、研究的不多,既然现在有这个机会,就索性好好利用下,再研究研究。由于行业的原因平时接触的 MIS 较多,所以这次 SQL 注入类缺陷想得多些。
SQL Injection Command Execution
该缺陷是一种特定的SQL注入,它通过Microsoft SQL Server T-SQL提供的xp_cmdshell存储过程工作,该过程提供了在服务器上执行Shell命令脚本的能力。攻击者可以通过SQL注入缺陷向Web应用注入xp_cmdshell相关SQL语句,通过xp_cmdshell在服务器上执行注入的Shell命令或脚本。这种缺陷往往被攻击者组合使用。出于安全的考虑,Microsoft SQL Server 2005 默认情况下禁用了xp_cmdshell存储过程执行权限,如果在未经sp_configure启用的情况下执行xp_cmdshell存储过程会获得如下错误信息:
SQL Injection using DECLARE, CAST and EXEC
该缺陷是一种特定的SQL注入,通过Microsoft SQL Server T-SQL提供的CAST函数工作。CAST用于将一种数据类型的表达式转换为另一种数据类型的表达式,CONVERT函数也提供了同样的功能。攻击者通过提供需要注入的SQL语句的ASCII编码数组,在CAST函数转换后执行来实现注入攻击目的,一般会与DECLARE和EXEC结合使用。首先DECLARE注入SQL语句的缓冲区;然后通过CAST转换注入SQL语句的ASCII编码数组生成T-SQL可执行语句,并将结果保存入上步定义的缓冲区中;最后,通过EXEC执行注入语句。可以发现这种攻击方式潜在的威胁很大,如果执行注入SQL的Microsoft SQL Server登录用户拥有足够权限,攻击者就可以获得大量的非法数据;同时通过结合SQL Injection Command Execution缺陷,此时若Microsoft SQL Server在Windows执行进程权限足够高,就非常容易执行对服务器有威胁的Shell命令或脚本。
在上面的例子中,攻击者首先利用Web应用中showNews.xsql页面的SQL注入缺陷通过domesticindicate查询域传入了利用DECLARE, CAST and EXEC缺陷的SQL语句。其中标记部分,会最终在Microsoft SQL Server中执行如下T-SQL命令(不包括其中的换行):
CAST函数处理后的缓冲区将会包含以下T-SQL命令:
上面的例子就是通过结合SQL Injection Command Execution缺陷,执行对服务器有威胁的命令脚本,这要求Microsoft SQL Server执行进程有足够权限。
SQL Query in Parameter Value
该缺陷是一种特定的SQL注入,主要是指Web应用将一些查询目的的SQL语句写入客户可访问的页面中,此时攻击者可以通过伪造页面并伪造其中的SQL语句来实现注入攻击。一般情况下此缺陷的查询SQL语句会被设计存入在页面表单中的隐藏域中。
8.3 Naming System Source Code Disclosure
在Microsoft Windows操作系统中,文件有“长路径”和“8.3格式短路径”两种路径表示方式。一般情况下Web服务器会根据客户访问页面资源文件名和扩展名来判断是否执行解析。此时当具有该缺陷的Web服务器部署在Windows平台上时,攻击者通过发送“8.3格式短路径”来标识访问页面资源的URL,Web服务器就不会对页面进行解析执行,此时页面代码就会被推送到客户端浏览器中,并作为文本(text/plain)显示。该缺陷虽然不会直接造成攻击者在服务端执行脚本代码,但能够造成Web应用源代码泄露,为攻击者进一步精确攻击提供了帮助。
Multiple Vendor Java Servlet Source Code Disclosure
该安全缺陷也会造成Web应用源代码泄露,存在该缺陷的Web服务器会错误的认为URL标识的页面资源不应该进行解析执行,此时页面代码就会被推送到客户端浏览器中,并作为文本(text/plain)显示。该缺陷虽然不会直接造成攻击者在服务器端执行脚本代码,但能够造成Web应用源代码泄露,为攻击者进一步精确攻击提供了帮助。下面列出了典型情况:
- Web服务器对页面资源URL标识大小写敏感,未正确解析执行。如:使用“http://TARGET/servlet.JSP”替代“http://TARGET/servlet.jsp”。
- Web服务器对URL编码(或组合)敏感,未正确解析执行。如:
- “http://TARGET/servlet.jsp%00”,空(NULL)的URL编码为“%00”;
- “http://TARGET/servlet.js%70”,字母“p”的URL编码为“%70”;
- “http://TARGET/servlet%2ejsp”,字符“.”的URL编码为“%2e”;
- “http://TARGET/cgi-bin/script.cgi%20”,空格的URL编码为“%20”。
Alternate Version of File Detected
该缺陷是指在部署的Web应用中遗留了备份文件,并且这些页面资源可以被客户访问,而这些备份文件中往往会包含一些开发时保留的调试目的的执行代码。攻击者会利用这些文件所给出的调试信息来分析Web应用系统,以获得用于执行更精确的攻击所需要的信息。此类攻击一般都需要Directory Listing类缺陷支持,如Apache Jakarta Tomcat URL Parsing Directory Listing、CVS Directory Browsing或Directory Listing Pattern Found等,备份文件往往包含以下标志“Copy of”、“_”、“.”、“~”或“Old”等。该缺陷虽然不会直接造成攻击者在服务器端执行脚本代码,但能够造成Web应用源代码泄露,为攻击者进一步精确攻击提供帮助。
TRACE and TRACK HTTP Methods Enabled
HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此缺陷来欺骗合法用户并得到他们的私人信息。该缺陷往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。
Phishing Through URL Redirection
该缺陷指出Web应用系统中包含了能够跳转到其它Web应用地址的情况。攻击者可以伪装该跳转缺陷,欺骗合法用户并得到他们的私人信息,如典型的钓鱼类网站。
暂时就先到这里,其它好多缺陷等遇到了再研究。
其中一些缺陷的名称可能 AppScan 与其它略有不同,不过表达的意思是相同的。
注明:以上所有内容和代码,如与我有关项目或文档有相似之处纯属巧合。
哎,这次还是贴图。上面提到的所有内容在附件的 Word 文档中可以找到文字版本,尤其是涉及的样例部分。
// 2009.01.19 08:45 添加 ////
IBM Rational 的 release 速度还是比较快的,呵呵上周五推出了 AppScan 7.8 (Build 518)。官方网站提供了试用版下载。
Rational AppScan
值得一提的是,AppScan 将 Web 服务的缺陷检测功能放在了独立的 GSC(Generic Service Client) 工具中,如果需要测试 Web 服务,则需要另外安装该工具支持。除此之外,发现 IBM Rational AppScan eXtensions Framework
也是个好东东,通过她就可以开发基于 AppScan 的自定义功能扩展及自动化测试解决方案。不过 AppScan 可不便宜哦。
// 2009.01.19 09:22 添加 ////
MSDN 上的一篇很好的介绍 SQL 截断缺陷与防御的文章,虽然是06年11月发表的。特别是使用 Microsoft SQL Server 产品的兄弟们。文章的最后还给出了这类缺陷的检测方法,包括了一、二级 SQL 注入,很是精辟。推荐。
新型 SQL 截断攻击和防御方法
// 2009.03.07 13:30 添加 ////
作者:lzy.je
出处:http://lzy.iteye.com
本文版权归作者所有,只允许以摘要和完整全文两种形式转载,不允许对文字进行裁剪。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
// 2009.05.22 15:18 添加 ////
这里有篇对跨站请求伪造(Cross Site Request Forgery)缺陷介绍得比较清楚的文章,其中还提到了几个解决方法,可供参考。
CSRF——攻击与防御
- 大小: 6.4 KB
- 大小: 37.9 KB
- 大小: 7.4 KB
- 大小: 1.7 KB
- 大小: 11.8 KB
- 大小: 51.3 KB
- 大小: 51.8 KB
- 大小: 27.3 KB
- 大小: 26.7 KB
- 大小: 24.2 KB
分享到:
相关推荐
撇开语言和平台来讲,Web应用程序的源代码是入侵缺陷的主要来源。CSI(计算机安全协会)...在本文里,作者将说明如何对一个用ASP.NET编写的Web例子应用程序做自动化审查,并制作了一个Python脚本工具用于做源代码分析
Web Service附加身份认证样例主要探讨了如何为Web服务添加额外的安全层,确保只有授权的用户或系统能够访问服务。这个样例可能涵盖了多种身份验证机制,包括基本认证、摘要认证、以及更高级的令牌或证书认证。 Web...
这个"SSM框架WEB工程样例"是一个实际应用SSM框架的示例项目,旨在帮助开发者理解并掌握如何在Web环境中集成和使用这三大框架。 **Spring框架**:Spring是一个全面的企业级应用开发框架,它提供了IOC(Inversion of ...
本资源摘要信息将对 web 安全常见漏洞进行浅析,涵盖 Web 业务与应用逻辑缺陷。 一、Web 业务逻辑缺陷 Web 业务逻辑是指 Web 应用程序中与业务相关的逻辑,例如注册、登录、忘记密码、支付逻辑等。在 Web 业务逻辑...
《web之困:现代web应用安全指南》在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客、国际一流安全专家撰写,是目前唯一深度探索现代...
此外,还需要深入理解Web应用程序漏洞的分类、成因及挖掘和利用方法,掌握至少一种数据库的相关知识,如默认用户名和口令、存储过程、常见配置缺陷,以及其他网络服务的漏洞挖掘和利用,如FTP、Mail、P2P服务等。...
在动态Web应用中,动态生成的HTML页面产生的缺陷难以定位并且会严重影响Web...为验证该方法的有效性,对几个基于PHP的开源Web程序进行实验,结果表明该方法在Web应用的HTML缺陷检测定位覆盖率和准确率方面都有所改进。
web之困:现代web应用安全指南》在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客、国际一流安全专家撰写,是目前唯一深度探索现代web...
常见的web应用漏洞和检测方案 明文信息传输漏洞 敏感信息泄露 默认或可猜解用户账户 会话重放攻击测试 验证码缺陷 http方法测试 不安全的cookie传输 CSRF漏洞测试 会话设计缺陷 会话定置测试 会话复杂度测试 会话...
本篇将详细介绍Web服务的基本概念、工作原理,以及提供一个实现样例,帮助理解Web服务的实践应用。 一、Web服务基本概念 1. **SOAP(Simple Object Access Protocol)**:Web服务主要使用的通信协议,它基于XML,...
《白帽子讲Web安全》一书主要涵盖了以下几个核心知识点: 1. **Web安全基础**:书中首先介绍了Web安全的基础知识,包括HTTP协议、Web应用架构以及常见的攻击模式,如SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF...
微信小程序webapi开发测试样例
WEB应用安全攻击与防范培训教程,包括各种常见web攻击方式及防范方法。超过百页的PPT教程,最全的WEB攻击与防范PPT教程
Web安全测试是信息安全领域的一个重要分支,主要关注于Web应用的安全缺陷,它包括了对网站、Web服务器、Web应用程序和Web服务的安全性评估。它不仅涉及到应用层的攻击,如钓鱼攻击、跨站脚本攻击、SQL注入攻击等,还...
漏洞就是软件设计时存在的缺陷,安全漏洞就是软件缺陷具有安全攻击应用方面的价值。软件系统越复杂,存在漏洞的可能性越大。 2、漏洞出现哪些地方?(2天) 前端静态页面 脚本 数据 服务:主机、网络 系统逻辑 移动...
【描述】"IOS应用源码之iPhone Browser样例 .zip" 描述简洁,但我们可以从中推测出几个关键点。首先,这是一款针对iPhone设计的应用,意味着它必须遵循Apple的iOS Human Interface Guidelines(用户界面指南),提供...
《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你...