前两周在做一个项目,接近尾声时对应用系统进行了安全缺陷检查,主要是通过 IBM Rational AppScan 工具(之前是 WatchFire 的产品)自动进行的。通过对结果的整理、研究对 Web 应用的安全检测和漏洞防范有了新的理解和认识。在这里分享一下,实际上一些概念也比较常见了,其中还结合了几个实际的样例代码,希望大家能够有所交流、提高。
SQL Injection
简单说SQL注入缺陷就是攻击者可以通过应用系统的漏洞提交SQL脚本代码,根据应用系统处理后返回的错误提示信息,这种错误消息能够使攻击者获得用于执行更精确的攻击所需要的信息,通过反复实验和推测获得某些攻击者需要的但本不应被访问到的数据,这就是所谓的SQL Injection,即SQL注入。
Blind SQL Injection
这种安全缺陷与上述的“标准”的SQL注入缺陷类似,不过最大区别在于攻击者在没有应用系统返回的错误相关提示信息的情况下,仍然可以通过原本在在的SQL注入漏洞攻击应用系统。“标准”SQL注入攻击会使应用系统开发人员相信只要消除这种可能会被利用的提示消息就会解决引起SQL注入式攻击的潜在的问题,但开发人员可能不会认识到虽然这样会隐藏可能被利用的提示消息,但原有的安全缺陷性仍然存在。这样虽然会为攻击者增加困难,但却不能阻止攻击者使用错误消息收集信息,攻击者会不断地将伪造SQL“注入”给应用系统,以期获得非法访问的数据。
Cross-Site Scripting
跨站点脚本攻击(XSS/CSS)安全缺陷,往往存在于那些提供动态网页的Web应用系统中。这类Web站点提供动态的页面,这类页面由为用户动态建造的多个源站点的信息组成。如果应用系统存在该漏洞,则攻击者可以将恶意内容(一般为代码)插入到Web站点提供动态的页面中,以收集其他用户在使用被攻击页时提交的重要信息,或简单的在其它用户的浏览器上执行攻击脚本代码。
HTTP Response Splitting
这种缺陷是 CRLF Injection 的一种特例,其发生在 HTTP Header 中。攻击的基本原理是通过向存在漏洞的应用系统提交一段攻击目的脚本代码,并在代码之前传入CRLF(CRLF:Carriage Return (CR, ASCII 13, \r) Line Feed (LF, ASCII 10, \n)),这两个字符经常被用来作为换行,通过配合跨站点脚本攻击(XSS/CSS)方法,就可以通过HTTP Response内容,将由攻击者构造的脚本代码返回给被攻击用户的浏览器,进而窃取到攻击者感兴趣的信息。
HTTP Referer Header SQL Injection
利用该缺陷,攻击者可以通过在HTTP 请求头中的Referer域中添加特定的攻击脚本代码来获取应用系统或服务器信息,或者根据HTTP响应返回的错误提示信息获得用于执行更精确的攻击所需要的信息,往往通过方式完成SQL注入类攻击。
HTTP User-Agent Header SQL Injection
这种安全缺陷与HTTP Referer Header SQL Injection缺陷是一样的,只是攻击者利用的是HTTP请求中的User-Agent域。
Login Error Messages Credential Enumeration
用户登录出错信息泄漏缺陷,存在该漏洞的应用系统登录页面会随着攻击者输入不同的登录信息,返回不同的错误信息。在这种情况下,攻击者可以不断尝试登录操作,以获得用于执行更精确攻击所需要的信息。此种漏洞很容易被暴力攻击工具攻入(brute-force)。建议应用系统返回统一一致的错误信息以避免攻击。
Login Sequence Response Splitting
该缺陷也是 CRLF Injection 的一种特例,指 CRLF 发生在登录相关的页面中。存在漏洞的应用系统允许攻击者在登录相关页面中提交包括CRLF和脚本代码,这样就可以通过HTTP Response内容,将由攻击者构造的脚本代码返回给被攻击用户的浏览器,进而窃取被攻击者感兴趣的信息。
暂时就是这些,其中一些缺陷的名称可能 AppScan 与其它略有不同,不过表达的意思是相同的。
注明:以上所有内容和代码,如与我有关项目或文档有相似之处纯属巧合。
写在最后,本来这个东西是写在Word 里的,不过一粘贴到 je 里来就乱了,真是害的我好头痛,最后无奈将所有样例都存成图片提交。希望 je 继续提升博客的编辑功能!上面提到的所有内容,在附件的 Word 文档中可以找到文字版本,尤其是涉及的样例部分。
// 2008.12.31 15:44 添加 ////
Google 到一篇结合真实案例解释 Cross-Site Scripting 和 HTTP Response Splitting 安全缺陷原理的文章,写得不错。
老树开新花,再看 HTTP Response Splitting 攻击
// 2008.12.31 21:01 添加 ////
IBM Rational AppScan 官方网站,现在提供了试用版下载。
Rational AppScan
// 2009.01.14 17:08 添加 ////
又研究研究,这里做了一些补充。
几个常见的 Web 应用安全缺陷及样例(续)
// 2009.03.07 13:30 添加 ////
作者:lzy.je
出处:http://lzy.iteye.com
本文版权归作者所有,只允许以摘要和完整全文两种形式转载,不允许对文字进行裁剪。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- 大小: 67.7 KB
- 大小: 30.1 KB
- 大小: 30.4 KB
- 大小: 48 KB
- 大小: 117.7 KB
分享到:
相关推荐
这个"SSM框架WEB工程样例"是一个实际应用SSM框架的示例项目,旨在帮助开发者理解并掌握如何在Web环境中集成和使用这三大框架。 **Spring框架**:Spring是一个全面的企业级应用开发框架,它提供了IOC(Inversion of ...
web-应用安全解决方案web-应用安全解决方案,
本文将详细介绍如何在Java中实现Web应用的安全性控制,包括用户认证、授权、数据保护、会话管理以及常见的安全漏洞防护。 Web应用安全是一个持续的过程,需要开发者在设计、开发和维护的每个阶段都保持警惕。通过...
本规范就是提供一套完善的、系统化的、实用的Web安全开发方法供...本规范主要包括三大内容:Web设计安全、Web编程安全、Web配置安全,配套CBB,多管齐下,实现Web应用的整体安全性;本规范主要以JSP/Java编程语言为例。
此外,还需要深入理解Web应用程序漏洞的分类、成因及挖掘和利用方法,掌握至少一种数据库的相关知识,如默认用户名和口令、存储过程、常见配置缺陷,以及其他网络服务的漏洞挖掘和利用,如FTP、Mail、P2P服务等。...
本文档主要总结了常见的web的安全漏洞及处理办法,这些基本上都是我们做项目过程中发现并处理过得,希望能帮助到大家!
《白帽子讲Web安全》是一本深入探讨网络安全领域中Web应用安全的专业书籍,全面覆盖了Web安全的基础理论、常见威胁及防御策略。随着互联网技术的不断发展,Web应用已经成为日常生活和工作中不可或缺的一部分,...
web之困:现代web应用安全指南》在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客、国际一流安全专家撰写,是目前唯一深度探索现代web...
总的来说,PB11调用Web Service的WEB FROM与WINFROM样例展示了如何结合桌面应用和Web服务的优势,提供跨平台的数据获取和交互能力。这对于开发集成多种服务的复杂应用非常有用,尤其是在企业级应用中,可以极大地...
本篇将详细介绍Web服务的基本概念、工作原理,以及提供一个实现样例,帮助理解Web服务的实践应用。 一、Web服务基本概念 1. **SOAP(Simple Object Access Protocol)**:Web服务主要使用的通信协议,它基于XML,...
《白帽子讲Web安全》一书主要涵盖了以下几个核心知识点: 1. **Web安全基础**:书中首先介绍了Web安全的基础知识,包括HTTP协议、Web应用架构以及常见的攻击模式,如SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF...
Web安全测试是信息安全领域的一个重要分支,主要关注于Web应用的安全缺陷,它包括了对网站、Web服务器、Web应用程序和Web服务的安全性评估。它不仅涉及到应用层的攻击,如钓鱼攻击、跨站脚本攻击、SQL注入攻击等,还...
漏洞就是软件设计时存在的缺陷,安全漏洞就是软件缺陷具有安全攻击应用方面的价值。软件系统越复杂,存在漏洞的可能性越大。 2、漏洞出现哪些地方?(2天) 前端静态页面 脚本 数据 服务:主机、网络 系统逻辑 移动...
2. **常见攻击类型**:包括SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)、文件包含漏洞、命令注入等,这些都是Web应用中常见的安全漏洞。 3. **漏洞利用**:书中会详细解释如何利用这些漏洞进行攻击,以帮助...
在IT安全领域,尤其是Web应用安全方面,OWASP(Open Web Application Security Project)是一个非常权威且备受关注的组织。它不仅提供了丰富的资源和指南来帮助开发者、安全专家识别和修复Web应用中的安全隐患,还...
Web安全的重要性体现在以下几个方面: * 保障用户隐私:Web应用程序中存储着大量用户敏感信息,例如个人信息、财务信息等。因此,保障用户隐私是Web安全的首要任务。 * 防止财务损失:Web应用程序中的安全漏洞可能...
以下是几种常见的Web应用安全漏洞: 1. SQL注入(SQL Injection) SQL注入是一种常见的攻击方法,攻击者通过在Web表单输入或直接在URL上输入恶意的SQL语句,从而能够控制后台数据库。成功的SQL注入攻击可以让攻击者...
【描述】"IOS应用源码之iPhone Browser样例 .zip" 描述简洁,但我们可以从中推测出几个关键点。首先,这是一款针对iPhone设计的应用,意味着它必须遵循Apple的iOS Human Interface Guidelines(用户界面指南),提供...