1、电子商务网站安全测试项目-应用漏洞名称 漏洞类型 漏洞危害描述 解决方案或建议交易撤销缺陷 功能缺陷 某些机构系统没有交易撤销功能,会导致用户误操作后,在日结之前,无法将操作取消。建议加上交易撤销功能。界面数据项校验缺陷功能缺陷 某些机构系统对一些界面数据项没有做长度和字符的严格校验,可能会导致用户输入错误。建议对界面数据项做严格校验。未设置交易限额 风险监控漏洞 未设置单笔、单日的交易限额,可能支付平台被利用进行套现、洗钱等违法金融活动。建议设置与交易限额、日交易量相关的风控规则。登录提示信息中可能泄露信息网络设备安全漏洞登录提示信息中可能泄露信息。 建议修改登录提示信息,避免信息泄露。连续
2、错误登陆多次未自动锁定帐号码主流操作系统漏洞当某用户账号连续三次(或有限的次数)登录失败,系统安全策略应锁定此账号,以防止该用户账号的密码被暴力猜解。设置登录失败自动锁定策略。ActiveX 控件漏洞主流操作系统漏洞入侵者利用应用系统存在的 ActiveX 控件漏洞,可能造成入侵者利用 ActiveX 进行网页挂马、读取注册表,访问本地文件系统等。1、对 ActiveX 控件进行源代码审查与渗透测试,以避免缓冲区溢出之类的漏洞。2、要求提交给 ActiveX 控件的所有参数使用加密签名验证,避免未授权的域尝试调用这些控件。本地缓存攻击 主流操作系统漏洞入侵者利用应用系统存在的本地缓存攻击漏洞,
3、可能造成入侵者绕过安全限制,获得敏感信息或破坏 WEB 缓存文件。1、通过在 HTTP 报头或 HTML 标签中添加 Cache-Control 等参数阻止浏览器缓存页面。2、在表单标签或输入字段的标签中设置 autocomplete=“off“属性。样例数据库没有删除主流操作系统漏洞MySQL 存在样例数据库,用于示范功能和测试服务器。在上线系统中建议删除样例数据库,这样,可以减少新弱点被利用的风险。例如:一个新的弱点要求必须有对视图作查询的能力,则样例数据库中的任一个视图都能被用户利用。如果删除了样例数据库,攻击者需查询其它的视图,这将增加攻击的难度。从产品系统中删除两个样本数据库。未设置
4、使用 SSL 主流操作系统漏洞当敏感信息在非信任网络传输时,建议使用 SSL 保护其一致性和完整性。建议使用 SSL 保证传输内容安全。重复支付 应用安全漏洞 由于支付系统的设计缺陷,导致可对同一商品订单采用同一卡/帐户或不同的卡/帐户重复进行支付,包括客户无意的或者代理操作人员恶意的,对客户造成经济利益损害。对每笔订单进行控制,在进行支付操作时,检查该订单的支付情况,对于支付异常的情况进行回退操作;如己支付成功,进行支付成功提示并拒绝再次支付。不安全的直接对象访问应用安全漏洞 服务器上具体文件名、路径或数据库关键字等内部资源被暴露在URL 或网页中,攻击者可以此来尝试直接访问其他资源。主要防
5、范措施:1.避免在 URL 或网页中直接引用内部文件名或数据库关键字;2.可使用自定义的映射名称来取代直接对象名;3.锁定网站服务器上的所有目录和文件夹,设置访问权限;4.验证用户输入和 URL 请求,拒绝包含./ 或./的请求。URL 访问限制缺陷应用安全漏洞 某些 Web 应用包含一些“隐藏”的 URL,这些 URL 不显示在网页链接中,但管理员可以直接输入 URL 访问到这些“隐藏”页面.如果我们不对这些 URL 做访问限制,攻击者仍然有机会打开它们。主要防范措施:对于网站内的所有内容(不论公开的还是未公开的),都要进行访问控制检查;只允许用户访问特定的文件类型,比如 html,asp,
6、php 等,禁止对其他文件类型的访问。网站存在测试垃圾页面应用安全漏洞 在默认安装模式下,许多 Web 服务器和应用程序服务器都提供了样本应用程序和文件,以便开发者测试安装之后服务器是否能正常运行。垃圾页面是信息泄露类型漏洞的一种,他为攻击者提供了少量的部分系统和后台服务信息。但由于垃圾页面一般是旧信息或是无用信息,所以泄露出的信息并不是直接的、严重的,然而存在垃圾页面会一定程度影响到网站形象。删除测试页面,并形成不在 WEB 可访问文件夹下操作的管理习惯,以避免遭到攻击。网站后台暴露 应用安全漏洞 攻击者可以用暴力破解的方式来猜测管理后台的户名和密码,从而登陆进后台来发布虚假新进行完善的网站
7、管理系统配置,关闭用户远程访问的功能。网上交易无密码安全控件,可窃取用户账号和密码信息应用安全漏洞 键盘记录是目前比较有效的攻击手段,但攻击者并不把目标指向安全防御相对较高的服务提供方,而是针对安全意识较淡薄的接受服务人群,通过植入一个进程,监控内存中的输入缓冲区活动,以获取密码。此类攻击会严重影响客户的交易安全,同样会损伤服务商的声誉。网上交易页面中的密码安全控件在使用键盘输入密码时失效,说明目前采用的安全控件不能完全有效防止木马截取键盘信息,建议尽快增加密码安全控件,以保障用户在输入账号和密码时的安全性。SQL 注入攻击 应用安全漏洞 入侵者利用应用系统存在的 SQL 注入漏洞,可能造成:
8、1.入侵者绕过系统管理后台登录,以管理员身份查看网站信息、发布虚假信息。2.SQL 注入报错信息导致数据库中的数据库名称、数据表名称、数据字段名称、数据字段内容、业务数据等遭到泄露。3.执行数据库MySQL, MS SQL, Oracle 等) 系统命令,导致批量纂改文件,批量追加恶意链接,进行跨站脚本攻击等。4.通过 WebShell 对网站所在服务器进一步渗透,如果提升权限成功,将通过反连等技术完全控制整个服务器。1、建议检查应用程序代码,对用户输入、URI,参数和 Cookie 参数等进行过滤,过滤或替换危险 SQL 字符,或完全使用参数化查询(ParameterizedQuery)来设
9、计数据访问功能,并关闭系统详细报错信息。过滤或转化的字符包括但不限于:12”3,45)6;7*2.整型的参数,直接用函数强制转化:如 PHP 的 intval ($id);字符型的参数,过滤或转化union|select|update|delete|insert|and|user|load_ file|outfile等关键字;3、针对 GET, POST,Cookie 中的参数均进行过滤;4、使用 SQL 防注入系统或者应用层的防火墙。路径篡改漏洞 应用安全漏洞 1、攻击者能够指定某一 file system 操作中所使用的路径。2、攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情
10、况下是不可能获得的。方法一:创建白名单,允许其中出现在资源名称中,且只接受完全由这些认可的字符所组成的输入方法二:采用黑名单的方法。在输入之前,黑名单有选择地拒绝或避免潜在的危险字符Java 脚本劫持 (脆弱的框架)漏洞(跨域攻击)应用安全漏洞 应用程序易受到 JavaScript 劫持,使未经授权的攻击者能够读取敏感信息方法一:拒绝恶意请求:在每个返回给 JavaScript 的请求中使用一些令人难以猜测的标识符,如会话标识符:方法二;避免直接执行 JavaScrip、响应:包括某些响应中的字符,这些响应只有经过了修改,才能成功地转到 JavaScribt 解释器讲行处理。跨站脚本攻击 应用
11、安全漏洞 跨站脚本攻击(也称为 XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。1、过滤客户端提交的危险字符,客户端提交方式包含 GET. POST, COOKIE, User-Agent, Referer,Accept-Language 等,其中危险字符如下:1|、2、4 $
12、, 5%、6、7、8“、11、12()、13+、14 CR、15 LF, 16,、17 ,2、开发语言的建议:1检查入局请求,以了解所有预期的参数和值是否存在。当参数缺失时,发出适当的错误消息,或使用缺省值。2应用程序应验证其输入是否由有效字符组成 (解码后)。例如,应拒绝包含空字节(编码为%00 )、单引号、引号等的输入值。3确保值符合预期范围和类型。如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。例如,如果应用程序预期值在 10. . 99 范围内,那么就该确保该值确实是数字,且在 10. . 99 范围内。4验证数据属于提供给客户端的集合。5请勿
13、在生产环境中输出调试错误消息和异常。密码框未采用安全控件应用安全漏洞 部分网上交易系统的支付密码输入框未采用安全控件进行保护,攻击者可以轻易的窃取密码信息1、建议采用通过认证的密码框安全控件。网站管理后台地址 应用安全漏洞 站点信息的更新通常通过后台管理来实现的,web 应用程序开发者或者站点维护者可能使用常用的后台地址名称来管理,比如admin,manager 等。攻击者可能通过使用上述常用的地址尝试访问目标站点,获取站点的后台管理地址:攻击者可能对后台管理页面进行口令猜测:如果后台管理系统存在其他弱点,被攻击者利用,可能导致攻击者获取管理员权限甚至服务1、使用非常规的后台管理地址名称。2、
14、对访问网站后台地址的 IP 进行限定或仅限内网用户访问。3、网站前端程序和后合管理程序分离,比如为后台管理地址设置一个二级域名。上传程序漏洞 应用安全漏洞 应用系统提供的上传程序未对文件的大小、类到进行校验,攻击者可以上传 asp. jsp. exe 等脚本文件,从而获得 webshell。对上传程序的大小、类型等进行校验,只允许用户上传固定类型的文件。恶意提交页面 应用安全漏洞 应用系统的部分用户交互模块无验证码、提交次数限定等机制,攻击者可能利用该页面进行恶意提交,产生大量垃圾数据,造成服务器性能下降。用户交互模块增加验证码、提交次数限定等恶意提交防范机制。暴力破解 应用安全漏洞 入侵者利
15、用应用系统存在的暴力破解漏洞,可能造成入侵者猜测出用户名和密码,从而获得未授权访问应用系统的权力。1,在登录机制中添加图形验证码。2.增强用户名和密码复杂度,给暴力破解攻击设置障碍。3.设置登录出错次数,超过设置值则临时冻结帐号一定时问。验证机制漏洞 应用安全漏洞 入侵者利用验证机制漏洞,能够获得未经授权的访问应用程序以及其中保存的数据。而且验证机制漏洞也可能导致其他核心安全机制(如会话管理和访间控制) 都无法有效实施。1、使用 POST 请求向服务器传输密码等验证信息,避免将验证信息放在 URL 参数或 cookie 中。2、使用统一的安全提示语,防止提示语造成信息泄露,如“登录失败,请重新
16、登录”等,而不应提示“登录失败,账号错误”等。3、使用密码修改功能时只能从已通过验证的会话中访问该功能。会话管理漏洞 应用安全漏洞 入侵者利用会话管理漏洞,能够轻易的绕开应用系统上已部署的安全验证机制,甚至不需要用户证书即可伪装成其他用户。1、确保在连续请求中生成的标志用户身份的令牌,是随机的,不可预测的。2、禁止以明文形式或在 URL 中传送生成的安全令牌3、退出系统时应删除服务器上的所有会话资源并终止会话令牌。4、用户会话处于非活动状态一段时间(如 10 分钟)后,应终止会话。访问控制漏洞 应用安全漏洞 入侵者利用会话管理漏洞,能够执行某种入侵者没有资格执行的操作,从而轻易的攻破整个应用程序,控制其管理功能并访问属于其他用户的敏感数据。1、系统在处理每一个客户请求时,应确保提出请求的用户有访问相应功能和资源的权限。2、仔细评估并记录每个应用程序的访问控制要求3、对于安全性很关键的应用程序功能,可执行重复验证和双重授权。