Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患。企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞,而由于程序逻辑缺陷导致的安全问题通常被忽略,测试中也很难辨别,即使是最简单的web网站系统中也包含无数的逻辑操作,而这些程序执行逻辑经常被攻击者利用。以下描述一些web常见的程序逻辑缺陷。

  1)核心业务令牌加密算法泄漏,企业有严格安全加密需求的核心业务与普通业务加密共用一套加密算法,且通过“加解密提示漏洞”或者普通业务加解密值暴露间接泄露了核心业务的加密算法;

  2)类似订单结算等需要在按序完成多阶段请求访问之后才能实现处理的特殊功能,开发者在客户端控制下单流程,并假设所有用户均会遵循这些流程按序操作,并未在后序阶段操作前作强校验。而实际情况是攻击者通常可以利用强制浏览技术手段跳过前一个阶段页面的导航直接在未支付的情况下进行下单结算;

  3)密码修改,普通用户密码修改与管理员修改普通用户密码共用一个接口,且接口逻辑通过客户端提交的请求参数判断用户类型,例如普通用户需输入旧密码,新密码以及确认密码,而管理员修改用户密码只需输入新密码,这将可能导致普通用户可以修改任意其他用户的密码进而获取他们的账号信息;

  4)由于程序逻辑设计问题,用户通过身份认证验证之后可通过访问其他接口修改会话中个人的身份信息为其他用户,进而提升普通用户的水平和垂直权限。在一个需要隔离水平与垂直权限的场景开发者与测试人员尤其需要注意由于访问接口导致的“用户状态信息累积”引起的应用程序行为变化,并评估这种变化可能带来的风险。

Java Web安全之程序逻辑缺陷的更多相关文章

  1. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

  2. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  3. Java Web表达式注入

    原文:http://netsecurity.51cto.com/art/201407/444548.htm 0×00 引言 在2014年6月18日@终极修炼师曾发布这样一条微博: 链接的内容是一个名为 ...

  4. JNLP(Java Web Start )(转)

    JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应 ...

  5. Java web轻量级开发面试教程的前言

    本文来是从 java web轻量级开发面试教程从摘录的. 为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这本书,而不是自己通过查阅网络资料学习?我已经会开发Java ...

  6. ref:一种新的攻击方法——Java Web表达式注入

    ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01 ...

  7. Java Web程序工作原理

    Web开发的最重要的基本功能是HTTP:Java Web开发的最重要的基本功是Servlet Specification.HTTP和Servlet Specitication对于Web Server和 ...

  8. 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

    基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...

  9. 【jframe】Java Web应用程序框架 - 第01篇:Get Started

    jframe是什么? jframe是一个基于MIT协议开源的java web应用程序框架,汇聚了我们团队之于java web应用程序的核心架构思想以及大量最佳实践,并且持续在实际项目中不断完善优化. ...

随机推荐

  1. bean 装配

    1.装配方式 (1)在xml进行显式装配 (2)在java中进行显式装配 (3)隐式的bean发现机制和自动装配 2.装配方式(3)实现 (1)创建bean /** * @component告诉spr ...

  2. spring 事务关键类

    TransactionInterceptor-> TransactionAspectSupport spring 事务的提交 AbstractPlatformTransactionManager

  3. 20190321xlVBA_汇总表按模板生成明细表

    Public Sub 汇总表转信息表() '日期 '作者 Next 'QQ 84857038 Dim Wb, Sht, msht, NewSht, rng Set Wb = Application.T ...

  4. nginx 和 tp兼容pathinfo和rewrite两种url访问方式

    环境:centos7,yum安装的nginx1.10.php-fpm,tp3.2 本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式 vim / ...

  5. Codeforces Round #422 (Div. 2)E. Liar sa+st表+dp

    题意:给你两个串s,p,问你把s分开顺序不变,能不能用最多k段合成p. 题解:dp[i][j]表示s到了前i项,用了j段的最多能合成p的前缀是哪里,那么转移就是两种,\(dp[i+1][j]=dp[i ...

  6. sql语句学习及索引学习,未完待续,补充增删改查

    1,查询出last_name 为 'Chen' 的 manager 的信息.  select * fromwhere employee_id = ( selectfrom employees wher ...

  7. Request中的各种地址

    今天来得匆忙,先上图吧,稍后再整理!

  8. Redhat 6.3上安装OpenSSL

    需求是:在Redhat 6.3上安装OpenSSL 1.1.0b. 一开始试图去搜索rpm,没有对应版本.https://pkgs.org/http://rpmfind.net/放弃! 只能通过编译源 ...

  9. Element.scrollIntoView()

    Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内 语法 element.scrollIntoView(); element.scrollIntoView( ...

  10. (03) spring Boot 的配置

    1. spring boot 的核心配置 spring boot 项目建立之后,已经创建好了application.properties 配置文件 其实, 配置文件还支持*.yml 格式的: 2. 多 ...