前两周在做一个项目,接近尾声时对应用系统进行了安全缺陷检查,主要是通过 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
分享到:
相关推荐
NULL 博文链接:https://lzy.iteye.com/blog/316371
常见web应用安全问题总结文档
在Internet大众化及Web技术飞速演变的今天,Web安全所面临的挑战日益严峻。黑客攻击技术越来越成熟和大众化,针对Web的攻击和破坏不断增长,Web安全风险达到了前所未有的高度。 许多程序员不知道如何开发安全的应用...
web应用安全与加速详解
web开发样例web开发样例web开发样例web开发样例web开发样例web开发样例web开发样例web开发样例
《web之困:现代web应用安全指南》在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客、国际一流安全专家撰写,是目前唯一深度探索现代...
撇开语言和平台来讲,Web应用程序的源代码是入侵缺陷的主要来源。CSI(计算机安全协会)...在本文里,作者将说明如何对一个用ASP.NET编写的Web例子应用程序做自动化审查,并制作了一个Python脚本工具用于做源代码分析
信息安全技术Web应用安全检测系统安全技术要求和测试评价方法.pdf
WEB应用安全解决方案WEB应用安全解决方案WEB应用安全解决方案
GAT 1107-2013 信息安全技术 web应用安全扫描产品安全技术要求.pdf
web应用安全基线,适用于web应用。Web应用提供了应当遵循的安全标准
web项目数据库连接样例web项目数据库连接样例web项目数据库连接样例web项目数据库连接样例web项目数据库连接样例
Web应用安全培训
web 应用安全开发资料,很有价值的。
web安全领域的圣经。作者是在底层安全、web应用层安全方面都很屌,是著名的Fuzz工具AFL的作者。
web-应用安全解决方案web-应用安全解决方案,
标准规定了web应用安全扫描产品的安全功能需求、性能要求、自身安全功能要求、安全保证要求及等级划分要求。
常见的Web应用威胁 网页篡改 SQL注入 跨站脚本 网页挂马 …… 非法入侵 暴力破解 目录遍历 越权访问 …… 拒绝服务 SynFlood CC攻击 IP欺骗性攻击 …… 1、SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性...
SSM框架WEB工程样例,SSM框架WEB工程样例,SSM框架WEB工程样例,SSM框架WEB工程样例,SSM框架WEB工程样例,